SQL server 月份行转列
SELECT tt.LegalEntityNameCN ,
tt.BUName ,
tt.DepartmentName ,
tt.EmployeeNo ,
tt.EmployeeName ,
tt.PositionName ,
[201911] AS 'Nov' ,
[201912] AS 'Dec' ,
[202001] AS 'Jan' ,
[202002] AS 'Feb' ,
[202003] AS 'Mar' ,
[202004] AS 'Apr' ,
[202005] AS 'May' ,
[202006] AS 'Jun' ,
[202007] AS 'Jul' ,
[202008] AS 'Aug' ,
[202009] AS 'Sep' ,
[202010] AS 'Oct'
FROM ( SELECT a.Month ,
a.BUID ,
b.BUName ,
a.DepartmentID ,
d.DepartmentName ,
a.EmployeeNo ,
m.FullNameCN AS EmployeeName ,
lg.LegalEntityID,
lg.LegalEntityNameCN ,
p.PositionID,
p.PositionName ,
a.TotalAmount
FROM dbo.HR_Calculate a
LEFT JOIN dbo.HR_BU b ON b.BUID = a.BUID
LEFT JOIN dbo.HR_Department d ON d.DepartmentID = a.DepartmentID
LEFT JOIN dbo.HR_Employee m ON m.EmployeeNo = a.EmployeeNo
LEFT JOIN dbo.HR_Position p ON p.PositionID = m.PositionID
LEFT JOIN dbo.HR_LegalEntity lg ON lg.LegalEntityID = m.LegalEntityID
WHERE a.IsActive = 1
AND lg.IsActive = 1
) AS bb PIVOT ( SUM(TotalAmount) FOR Month IN ( [201911], [201912],
[202001], [202002],
[202003], [202004],
[202005], [202006],
[202007], [202008],
[202009], [202010] ) ) AS tt;