2017-11-24 3 views
0

日付の値を返すためにsqlでピボットテーブルを作成しようとしましたが、これは決して前に行われませんでしたが、壁に入って 'Null'日付の値を返すことは可能ですか?助けをよろしく!以下のクエリ: enter image description hereピボットを作成して日付の値を返そうとしています

が、私はそれは次のようになりたい::

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

+0

してください、いくつかの詳細を提供しますあなたが期待していたような出力です。 – lucky

+0

どの[DBMS](https://en.wikipedia.org/wiki/DBMS)製品を使用していますか? "SQL"は特定のデータベース製品の名前ではなくクエリ言語です(クエリは非標準SQLです) –

答えて

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 
+0

はい!どうもありがとうございます! – ART

関連する問題