첫 번째 테이블의 결과가 필요한 세 테이블의 결과가 필요합니다. 이를 위해 왼쪽 외부 조인을 사용하여 sno (기본 키) 단위로 테이블을 연결합니다. 쿼리는 정상적으로 실행되지만 다른 조건에서 세 번째 테이블의 결과를 선택하려면 추가 된 복잡성이 있습니다.왼쪽 바깥 쪽 조인 쿼리에서 여러 기준으로 작동하는 쿼리
나는 결과를 검색하는 것을 시도하고 어떻게 볼 때 문제는 지워집니다:
SELECT * FROM tw_main MainTable
LEFT OUTER JOIN tw_details TW
ON TW.sno = MainTable.sno
LEFT OUTER JOIN tw_typedetails CWR
ON CWR.sno = MainTable.sno WHERE CWR.twcatname = 'CWR'
LEFT OUTER JOIN tw_typedetails OHT
ON OHT.sno = MainTable.sno WHERE OHT.twcatname = 'OHT'
LEFT OUTER JOIN tw_typedetails DS
ON DS.sno = MainTable.sno WHERE DS.twcatname = 'DS'
WHERE
MainTable.sno = 420;
내가 한 번만 세 번째 테이블 (tw_typedetails)를 사용하는 경우이 쿼리가 잘 작동을하지만, 내가 같은 테이블에서 별도의 결과 집합을 원한다 그러나 다른 WHERE 절이 있습니다.
어떤 수정이 필요합니까? SQL Server 2008 R2 Express를 사용하고 있습니다. 이 쿼리는 Crystal Reports 명령에서 실행해야합니다. where
절에 null
값을
LEFT OUTER JOIN tw_details TW
ON TW.sno = MainTable.sno
AND MainTable.sno = 420
을하거나 허용 :
SQL Server 내에서 독립적으로 실행하면 쿼리가 제대로 실행되지만 Crystal Reports 내에서 실행하면 CWR 결과가 DS 결과와 겹칩니다. OHT 결과가 올바르게 표시됩니다. – RKh