개발 은 델파이6으로 하고 있고
db는 싸이베이스 6.03 인가를 쓰고 있습니다
<!--CodeS-->
SELECT T.*, T.SU-ISNULL(M.MSU,0) MISU FROM (
SELECT A.TAXIL, A.TAXNO, A.TGONGKUM, A.TVATKUM, A.TTAXKUM, B.POOM, 1 SU, C.*
FROM TAXH A, CHCO C,
( SELECT TAXIL, TAXNO, POOM FROM TAXT
WHERE TAXIL >= '20090501'
AND TAXIL <= '20090531'
AND TAXSEQ = '01' ) B
WHERE A.TAXIL = B.TAXIL
AND A.TAXNO = B.TAXNO
AND A.MCHCODE = C.CHCODE
AND A.TAXIL >= '20090501'
AND A.TAXIL <= '20090531'
) T LEFT OUTER JOIN
( SELECT TAXIL, TAXNO, 1 MSU FROM ETAXT
GROUP BY TAXIL, TAXNO
) M ON T.TAXIL = M.TAXIL AND T.TAXNO = M.TAXNO
WHERE T.SU-ISNULL(M.MSU,0) > 0
ORDER BY T.TAXIL, T.TAXNO
<!--CodeE-->
지금 ETAXT 테이블에는 데이터가 하나도 없습니다.
이럴경우 LEFT OUTER JOIN 이기 때문에 모든 데이터가 나와야 하거든요..
근데.. 이상하게 시리
ISNULL(M.MSU,0) 이게 1이 되네요.. 허참..
분명 0으로 하라고 지정했는데..
제가 뭘 잘못한걸까요?
ETAXT 테이블에 데이터가 있으면 해당 데이터는 빼버리고 나머지만 나오게 하라는 건데...
MSSQL 2005에서는 문제 없이 실행 되는 쿼리인데.. 싸이베이스로 적용하니 않되네요
MSSQL로 작업한 프로그램을 싸이베이스로 변경중인데.. 않되니.. 답답합니다..
다른 방법이 있을까요?
음.. 갑자기 떠올라서리.. ^^
SELECT A.TAXIL, A.TAXNO, A.TGONGKUM, A.TVATKUM, A.TTAXKUM, B.POOM, D.JUNPIL, C.CHCODE, C.CHNAME, C.SAUPNO,
C.TAXNAME, C.BOSSNAME, C.ADDRESS, C.KIND, C.TYPE, C.TAXD, C.TAXTEL, C.TAXHP, C.TAXEMAIL
FROM TAXH A, CHCO C, ETAXT D,
( SELECT TAXIL, TAXNO, POOM FROM TAXT
WHERE TAXIL >= '20090501'
AND TAXIL <= '20090531'
AND TAXSEQ = '01' ) B
WHERE A.TAXIL = B.TAXIL
AND A.TAXNO = B.TAXNO
AND A.TAXIL *= D.TAXIL
AND A.TAXNO *= D.TAXNO
AND A.MCHCODE = C.CHCODE
AND A.TAXIL >= '20090501'
AND A.TAXIL <= '20090531'
GROUP BY A.TAXIL, A.TAXNO, A.TGONGKUM, A.TVATKUM, A.TTAXKUM, B.POOM, D.JUNPIL, C.CHCODE, C.CHNAME, C.SAUPNO,
C.TAXNAME, C.BOSSNAME, C.ADDRESS, C.KIND, C.TYPE, C.TAXD, C.TAXTEL, C.TAXHP, C.TAXEMAIL
HAVING D.JUNPIL IS NULL
ORDER BY A.TAXIL, A.TAXNO
역시 좀 무식한 방법이지만.. 효과는 있네요//
데이터가 많으면 문제가 될꺼 같긴 한데.. 쩝..
다른 방법 아시면 어서 답변을.. 쩝