【发布时间】:2017-01-03 14:40:09
【问题描述】:
有没有办法使用 Pivot 来包含具有空值的行?
理想情况下,我想要这样的输出
但是,目前 Pivot 没有返回空行,我得到这样的输出
我正在使用下面的代码来获取下面的结果集:
SELECT
ID,
Name,
Design,
month
FROM (SELECT
E.EnrollId AS ID,
E.EmployeeName AS Name,
D.Designation AS
Design,
DATENAME(MONTH, La.Date) AS month,
DATENAME(DAY, La.Date) AS Day,
L.LeaveShortName AS Short
FROM Employee E
JOIN LeaveApplicationDates LA
ON E.EnrollId = LA.EnrollId
JOIN Leave L
ON L.LeaveId = LA.LeaveId
JOIN Designation D
ON E.DesignationId = D.DesignationId
WHERE (E.EnrollId = '10277')
AND (La.Date BETWEEN '1/1/2016' AND '8/1/2016')) AS setr
PIVOT
(
MAX(Short)
FOR [Day] IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])
) AS pivotTable
【问题讨论】:
-
在我看来,PIVOT 没有任何问题,但您的 SELECT;您需要先编写 SELECT 查询以输出所有月份
-
@techspider 怎么样?你想分享sn-p吗?我试过但搞砸了 sql 查询...
标签: sql sql-server join pivot row