2017-03-29 6 views
-1

EmployeeID 당 그룹화에서 피벗을 사용할 때 혼란스러운 점이 있습니다.SQL Server - PIVOT 그룹화

SELECT * 
FROM(
    SELECT LoanAmount, lt.LoanTypeID 
    FROM LoanContract lc 
     INNER JOIN LoanType lt ON lt.LoanTypeID = lc.LoanTypeID 
    GROUP BY EmployeeID, LoanAmount, lt.LoanTypeID 
)src 
PIVOT(
    SUM(LoanAmount) 
    FOR LoanTypeID IN ([1], [2], [3], [4], [5]) 
)piv; 

은 EMP lt.LoanTypeID = 1 = 5로하고, 반면에 emp2 연관된 액수 (lt.LoanAmount)을 갖는다 2 직원 ID있다 갖는다 연관된 액수 (lt.LoanAmount) lt.LoanTypeID 1 및 2

와 결과 (1) 도시 :

[1]   [2]  [3]  [4]  [5]  
2400.00 30000.00 NULL NULL 105000.00 

예상 결과 (2) :

[1]   [2]  [3]  [4]  [5] 
NULL   NULL  NULL NULL  105000.00 
2400.00  30000.00 NULL NULL  NULL 

도움을 주시면 감사하겠습니다.

+1

그냥 '직원 ID는 LoanAmount는 lt.LoanTypeID' –

답변

3

하면 하위 쿼리에서뿐만 아니라 employeeId를을 선택하십시오 :

select * 
from (
    select employeeID, -- here 
     LoanAmount, 
     lt.LoanTypeID 
    from LoanContract lc 
    inner join LoanType lt on lt.LoanTypeID = lc.LoanTypeID 
    group by EmployeeID, 
     LoanAmount, 
     lt.LoanTypeID 
    ) src 
PIVOT(
    SUM(LoanAmount) 
    for LoanTypeID in ([1], [2], [3], [4], [5]) 
    ) piv; 
+0

감사합니다 친구는 평가 SELECT 필요 –