조인으로 작업하는 동안 논리적 인 퍼즐로 어려움을 겪고 있습니다. 그래서 EmpStatus와 EmpEIN 아래에 2 개의 테이블이 있습니다. 그래서 제가하고 싶은 것은이 2 개의 테이블을 조인하고 아래와 같은 출력을 만들어내는 것입니다. 소비자가 다른 행에 상태를 가져야하는 것보다 한 달 동안 EmpNumber를 보유한 경우 상태가 EmpNumber에 null 항목 과 함께 표시되어야합니다.여러 조건을 기반으로 2 개의 테이블을 결합하는 데 문제가 발생했습니다.
출력을 생성하기 위해이 두 테이블을 어떻게 조인 할 수 있는지 잘 모르겠습니다. 일부 SQL 프로가 나를 도와 줄 수 있다면 그것은 대단 할 것입니다.
EmpStatus:
ConsumerID JanStatus FebStatus MarStatus AprStatus MayStatus
1001 P P P P P
1002 P P P P P
1003 P P P P P
1004 P P P P P
1005 P P P P P
EmpEIN:
ConsumerID EmpNumber EmpNumberStartDate EmpNumberEndDate
1001 102020202 1/1/2015 31/1/2015 -- dates in dd/mm/yyyy format
1001 210201021 1/2/2015 31/3/2015
1002 NULL NULL NULL
1003 NULL NULL NULL
1004 NULL NULL NULL
1005 NULL NULL NULL
OUTPUT:
ConsumerID EmpNumber JanStaus FebStatus MarStatus AprStatus MayStatus
1001 102020202 P NULL NULL NULL NULL
1001 210201021 NULL P P NULL NULL
1001 NULL NULL NULL NULL P P
1002 NULL P P P P P
1003 NULL P P P P P
1004 NULL P P P P P
1005 NULL P P P P P
"P"에 대한 논리 이해가하지 않는 것 - 플러스 최종 날짜 열에는 날짜 일관성이 없다. 약간의 설명과 실제로 시도한 것을 제공해주십시오. – MageeWorld
@MageeWorld이 문제 때문에 P를 상수로 가정 할 수 있습니다. 기본적으로 상태. Employee 1001에는 EmpNumber 102020202가 1/1/2015 년에서 31/1/2015 기간 동안 할당되었으므로 JanStatus 열의 상태 P 만 출력의 EmpNumber 행에 대해 가져야합니다. –
JanStatus 등에 대한 열이 있지만 EmpEIN의 날짜는 (아마도 다른) 연도입니다. Jan2015Status 등을 의미 했습니까? 그런 다음 EmpStatus 및 OUTPUT의 열 수 (이름이 다를 수 있음)가 달라질 수 있으며 '2015 년 1 월에서 2015 년 1 월'과 같이 고정 된 창이 있습니까? 해결되지 않으면 동적 SQL이 필요합니다. 대부분의 경우 훌륭한 솔루션이 아닙니다. – mathguy