多個行我有一個數據的表像這樣結合在TSQL查詢
Road Item Response added_on
1 82 Yes 7/11/16
1 83 Yes 7/11/16
1 84 Yes 7/11/16
2 82 Yes 8/11/16
2 83 No 8/11/16
2 85 Yes 8/11/16
這反映的是「項目」的東西被評估的道路的評估。 某些項目將始終在評估過程中完成(82,83),其他項目是可選項目(84,85)。 我想返回結合道路/日期的所有評估結果的內容,如果未評估該項目,則返回null。也只是返回上個月的結果。例如
Road 82 83 84 85 added_on
1 Yes Yes Yes 7/11/16
2 Yes No Yes 8/11/16
我試過了多重自我連接,但它沒有任何返回。
FROM assess AS A
JOIN assess AS B
ON A.road = B.road AND a.added_on = B.added on
JOIN assess AS C
ON A.road = C.road AND a.added_on = C.added on
JOIN assess AS D
ON A.road = D.road AND a.added_on = D.added on
WHERE A.item = '81'
AND B.item = '82'
AND (C.item = '83' OR C.item IS NULL)
AND (D.item = '84' OR D.item IS NULL)
AND datepart(month,A.added_on) = datepart(month,getdate()) -1
爲了澄清,
-no道路被評估超過每天一次
- 每個項目僅評估一次,有時爲NULL,即不適用更
-multiple道路每天評估
- 這個表格有其他評估,但我們並不擔心這些。
任何想法?使用SQL Server 2008.謝謝。
有多少物品,並且這個數字是固定的和已知的? –
聽起來像你正在尋找類似PIVOT的東西 - 請參閱https://msdn.microsoft.com/en-us/library/ms177410.aspx。 –