모든 레코드 고객 ID, 최종 주문 날짜 및 해당 주문 총 $, 세그먼트 이름에서 필터링 된 테이블 수가 있습니다. 각 필터는 다른 기준을 기반으로하지만 동일한 고객 ID는 서로 다른 두 개의 테이블, 두 개의 서로 다른 세그먼트에 속할 수 있습니다. 동일한 ID는 지난 주문과 총 합계에 다른 값을 갖습니다. 세그먼트, 테이블 이름은 A, B, C, D입니다.중복이없는 여러 테이블의 SQL 쿼리 결과
집합에 중복 된 ID가없는 방식으로 모든 세그먼트 테이블의 레코드를 그룹화해야합니다. 예 : ID가 여러 테이블에 나타나면 (ID 2가 테이블 A와 B에 있음) 결과 세트에 첫 번째 테이블 인 테이블 A의 ID 열이 표시되어야합니다.
그래서 모든 세그먼트 B 테이블의 ID가 세그먼트 A에 있고 세그먼트 (segment)의 ID를 제외한 세그먼트 C 테이블의 모든 레코드 목록을 제외하고는 세그먼트 A 테이블의 모든 레코드 및 해당 값 목록 (세그먼트 B 테이블의 레코드 및 해당 컬럼 값) C가 세그먼트 A 또는 B 테이블에 있습니다. 나는 그것이 의미가 있기를 바랍니다.
나는 70-461 시험에서 질문과 같이 소리가났다 : 나는 아주 철저하게 연구했지만 어쩌면 그 질문을하는 법을 모르겠다. 누군가가 그 결과를 얻기 위해 쿼리를 작성하는 방법에 대한 아이디어를 갖고 있는지 궁금합니다. 모든 제안에 큰 감사드립니다.
감사합니다. 스크린 샷을 게시하지 못했습니다. html로 타이핑 해 보겠습니다. 더 많은 세그먼트 테이블이 있지만 아이디어를 제공하기 위해 두 개의 입력 만하면됩니다. 고마워요! 당신이 최적화 할 경우
SELECT ID, LastOrderDate, Total, Segment
FROM SegmentA
UNION ALL
SELECT ID, LastOrderDate, Total, Segment
FROM SegmentB
WHERE ID NOT IN (SELECT ID FROM SegmentA)
UNION ALL
SELECT ID, LastOrderDate, Total, Segment
FROM SegmentC
WHERE ID NOT IN (SELECT ID FROM SegmentA)
AND ID NOT IN (SELECT ID FROM SegmentB)
UNION ALL
SELECT ID, LastOrderDate, Total, Segment
FROM SegmentD
WHERE ID NOT IN (SELECT ID FROM SegmentA)
AND ID NOT IN (SELECT ID FROM SegmentB)
AND ID NOT IN (SELECT ID FROM SegmentC)
아주 간단한 대답, 더 많은 정보가 필요하다 :
Segment A
----------------------------------------
ID | Last Order Date | Total | Segment
----------------------------------------
1 | 01/01/2012 | $1 | A
----------------------------------------
2 | 01/01/2012 | $1 | A
----------------------------------------
3 | 01/01/2012 | $5 | A
----------------------------------------
6 | 01/01/2012 | $7 | A
----------------------------------------
8 | 01/01/2012 | $8 | A
Segment B
ID | Last Order Date | Total | Segment
--------------------------------------
4 | 01/01/2010 | $3 | B
--------------------------------------
2 | 01/01/2010 | $5 | B
--------------------------------------
1 | 01/01/2010 | $2 | B
--------------------------------------
3 | 01/01/2010 | $1 | B
--------------------------------------
5 | 01/01/2010 | $7 | B
Result Set
ID | Last Order Date | Total | Segment
--------------------------------------
1 | 01/01/2012 | $1 | A
--------------------------------------
2 | 01/01/2012 | $1 | A
--------------------------------------
3 | 01/01/2012 | $5 | A
--------------------------------------
4 | 01/01/2010 | $3 | B
--------------------------------------
5 | 01/01/2010 | $7 | B
테이블과 컬럼, 샘플 데이터 및 원하는 출력을 표시하면 훨씬 빠릅니다. 또한 솔루션을 직접 찾으려는 노력 (예 : 어떤 쿼리를 시도했는지)을 보여 주어야합니다. –
[UNION] (http://msdn.microsoft.com/en-us/library/ms180026%28v=sql.100%29.aspx) 문에 대한 완벽한 시나리오 인 것 같습니다. – wdosanjos