2016-08-19 6 views
2

T1 UNPIVOT T1에서두 개의 열 SQL 서버

enter image description here

T2 결과를 병합

enter image description here

피벗 쿼리

SELECT LocM, convert(varchar,[Date],112) as DateKey, FinanceCode, Amount 
FROM SalesDetail 
UNPIVOT 
    ([Amount] FOR [FinanceCode] IN([Sales],[Wages])) AS P 

T3

같은 결과가 될 수 있도록 617,451,515,

enter image description here

에 가입하는 방법/T3와 T2를 병합 : 당신은 모든 날짜에 대한 레코드의 같은 조합을한다고 가정

StoreCode | FinanceCode | DateKey | Amount 
070  | Wages  | 20160131 | 3533 
070  | Sales  | 20160131 | 833 
070  | 0000  | 20160131 | 0 

답변

1

뿐만 아니라 20160131.

에 대한 적절한 열 정렬을 사용하여 T2 및 T3에서 UNION ALL을 수행하는 것이 어떻습니까?

예.

SELECT StoreCode, FinanceCode, DateKey, Amount from T3 
UNION ALL 
SELECT LocM, FinanceCode, DateKey, Amount from T2 

당신은 하위 쿼리에 포장하고 서로 옆으로 몇 가지 카테고리에서 행을 원하는 경우 ORDER BY를 추가 할 수 있습니다.

+0

각 테이블 열의 양이 같지 않은 경우 어떻게해야합니까? 예를 들어 t2에 4 개의 열이 있고 t3에 5 개의 열이있는 경우 –

+0

자 기본 SQL입니다. 서로 다른 # 열에 대해 UNION ALL 작업을하려면 누락 된 열에 표시 할 값이있는 상수를 추가합니다. 예 : 여기 : http://stackoverflow.com/questions/2309943/unioning-two-tables-with-different-number-of-columns –