尝试在sql中创建一个数据透视表以返回日期值,之前从未这样做,但我遇到了一个墙,只返回'Null'值。是否可以返回日期值?感谢任何帮助!查询如下:
SELECT SYS_ID, JOB_ID,
[JOB_OPENED] AS A, [JOB_ENDED] AS B, [ROW_CONSTRUCTED] AS C, [SITE_CONSTRUCTED] AS D, [CONTRACT_ASBUILT_COMPLETE] AS E, [FIBER_ASBUILT_COMPLETE] AS F, [COAX_ASBUILT_COMPLETE] AS G, [JOB_RECONCILED] AS H
FROM
(SELECT COMPLETION_DATE, DATE_MILESTONE_NAME, SYS_ID, JOB_ID
FROM EIMS.JOB_MILESTONES_RV) AS RV
PIVOT
(MAX(COMPLETION_DATE)
FOR DATE_MILESTONE_NAME IN ([JOB_OPENED], [JOB_ENDED], [ROW_CONSTRUCTED], [SITE_CONSTRUCTED], [CONTRACT_ASBUILT_COMPLETE], [FIBER_ASBUILT_COMPLETE], [COAX_ASBUILT_COMPLETE], [JOB_RECONCILED])
) AS PivotTable
WHERE JOB_ID > 40000
AND SYS_ID = 8778
ORDER BY JOB_ID
这是当前表: enter image description here
但我希望它看起来像这样:enter image description here
答案 0 :(得分:0)
试试这个 -
SELECT SYS_ID
,JOB_ID
,MAX(CASE WHEN DATE_MILESTONE_NAME = 'JOB OPENED' THEN COMPLETION_DATE END) AS "JOB OPENED"
,MAX(CASE WHEN DATE_MILESTONE_NAME = 'JOB ENDED' THEN COMPLETION_DATE END) AS "JOB ENDED"
,MAX(CASE WHEN DATE_MILESTONE_NAME = 'SITE CONSTRUCTED' THEN COMPLETION_DATE END) AS "SITE CONSTRUCTED"
FROM YOUR_TABLE
GROUP BY SYS_ID
,JOB_ID