안녕하세요.
Delphi 4.0으로 프로그램을 개발 하는중에 몇가지 궁금사항이 있어 이렇게
글을 올려 봅니다. 모쪼록 이 글을 보시는 해박한 지식의 고수님들의 많은
답변을 부닥드립니다.
다름이 아니라 아래와 같은 경우에 어떻게 처리를 하는게 좋을지 몰라서...
Delphi의 Paradox DB를 이용하여 2개의 A_Table과 B_Table을 생성하고
이 두 Table를 Query를 이용하여 검색 하고자 합니다.
조건으로는 B_Table의 B_Join Field가 A_Table의 A_Code Field를 참조할
경우도 있고 참조 하지 않을 경우도 있다는 것입니다.
이때, Query를 이용하여 B_Table를 검색하는데 B_Table의 B_Join Field가
공백이면 A_Table를 참조하지 않고 공백이 아니면 A_Table를 참조하여 A_Name
Field를 보여 주고자 합니다.
[A_Table] A_Code A_Name
Acd01 Anm01
Acd02 Anm02
Acd03 Anm03
[B_Table] B_Code B_Name B_Join
Bcd01 Bnm01 Acd01
Bcd02 Bnm02 Acd01
Bcd03 Bnm03
Bcd04 Bnm04 Acd02
Bcd05 Bnm05 Acd03
Query 결과로는 아래와 같이 나왔으면 하는데 어떻게 해야 할지 몰라
Query 구문을 가르쳐 주셨으면 하는데 많은 답변을 부탁 드립니다.
제가 알고 있는 구문으론 조건을 어떻게 줘야 할지...
SELECT B_Tab.B_Code , B_Tab.B_Name , B_Tab.B_Join , A_Tab.A_Name
FROM "B_Table.DB" B_Tab , "A_Table.DB" A_Tab
???????????
[Query] B_Code B_Name B_Join A_Name
Bcd01 Bnm01 Acd01 Anm01
Bcd02 Bnm02 Acd01 Anm01
Bcd03 Bnm03
Bcd04 Bnm04 Acd02 Anm02
Bcd05 Bnm05 Acd03 Anm03
> 안녕하세요.
>
> Delphi 4.0으로 프로그램을 개발 하는중에 몇가지 궁금사항이 있어 이렇게
> 글을 올려 봅니다. 모쪼록 이 글을 보시는 해박한 지식의 고수님들의 많은
> 답변을 부닥드립니다.
> 다름이 아니라 아래와 같은 경우에 어떻게 처리를 하는게 좋을지 몰라서...
>
> Delphi의 Paradox DB를 이용하여 2개의 A_Table과 B_Table을 생성하고
> 이 두 Table를 Query를 이용하여 검색 하고자 합니다.
> 조건으로는 B_Table의 B_Join Field가 A_Table의 A_Code Field를 참조할
> 경우도 있고 참조 하지 않을 경우도 있다는 것입니다.
> 이때, Query를 이용하여 B_Table를 검색하는데 B_Table의 B_Join Field가
> 공백이면 A_Table를 참조하지 않고 공백이 아니면 A_Table를 참조하여 A_Name
> Field를 보여 주고자 합니다.
>
>
> [A_Table] A_Code A_Name
> Acd01 Anm01
> Acd02 Anm02
> Acd03 Anm03
>
>
> [B_Table] B_Code B_Name B_Join
> Bcd01 Bnm01 Acd01
> Bcd02 Bnm02 Acd01
> Bcd03 Bnm03
> Bcd04 Bnm04 Acd02
> Bcd05 Bnm05 Acd03
>
> Query 결과로는 아래와 같이 나왔으면 하는데 어떻게 해야 할지 몰라
> Query 구문을 가르쳐 주셨으면 하는데 많은 답변을 부탁 드립니다.
> 제가 알고 있는 구문으론 조건을 어떻게 줘야 할지...
>
> SELECT B_Tab.B_Code , B_Tab.B_Name , B_Tab.B_Join , A_Tab.A_Name
> FROM "B_Table.DB" B_Tab , "A_Table.DB" A_Tab
> ???????????
>
> [Query] B_Code B_Name B_Join A_Name
> Bcd01 Bnm01 Acd01 Anm01
> Bcd02 Bnm02 Acd01 Anm01
> Bcd03 Bnm03
> Bcd04 Bnm04 Acd02 Anm02
> Bcd05 Bnm05 Acd03 Anm03
>
이렇게 query 하는것을 "OUT JOIN 한다" 라고 하는데
저의 짧은 지식으론 Paradox Table 로 위의 방법이 안되는걸로 알고 있습니다.
그렇다고 해결 방법이 없느냐?
잔머리(?) 를 쓴다면
[A_Table] 에 NULL 코드를 넣어놓고 (두바이트 한글 공백문자)
------------
[ ] []
Acd01 Anm01
Acd02 Anm02
Acd03 Anm03
-------------
[B_Table] 에
Bcd01 Bnm01 Acd01
Bcd02 Bnm02 Acd01
Bcd03 Bnm03 [ ]
Bcd04 Bnm04 Acd02
Bcd05 Bnm05 Acd03
이렇게 데이터 처리 한 후에
select BDB.B_code, BDB.B_name,A_code, ADB.A_name
from "B.DB" BDB, "A.DB" ADB
where (BDB.A_code = ADB.A_code)
하시면 원하시는 결과가 나오긴 합니다.
참고로 [ ] 요렇게 표시한 두바이트 한글 공백문자는 어떻게 입력하냐면요
메모장에 ㄱ 자를 입력한 후에 한자 키를 누르면 두바이트 특수문자를
선택하는 창이 나오는데 거기서 1 번을 선택하면 두바이트 공문자를
입력할 수 있습니다.