2
很長一段時間聽衆,第一次來電者...新手SQL查詢透視
我有一個表(跟蹤)按照以下幾點:
ID | Works Order |Activity |Status
---|----------------|-----------|------
1 | W123456789-001 |10A |GOOD
2 | W123456789-002 |10A |GOOD
3 | W123456789-003 |10A |SCRAP
4 | W123456789-001 |20A |GOOD
5 | W123456789-002 |20A |GOOD
...其中工程訂單號W123456789- 001由實際工單號組成; W123456789,然後是部件號; 001.'Activites'被固定爲10A,20A,30A & 110A,狀態是'好的'或'碎片'。我想總結&輸出它像下面這樣:
Works Order |10A |20A |30A |110A
-------------|----|----|----|----
W123456789 |2 |2 |0 |0
...其中的cols 10,20,30 & 110A的數量是「良好的每個活動的次數。
我可以通過下面的代碼獲得大部分的方法;
select [WO_Part],[10A G],[20A G],[30A G],[110AG]
from
(
select
[Activity],
LEFT([WOPart],10) AS [WO_Part],
iIf([Status]='GOOD ',1,0) AS [STATUS],
[ACTIVITY]+LEFT([STATUS],1) AS [CONCAT]
from Tracker
) d
pivot
(
SUM([Status])
for [CONCAT] in ([10A G],[20A G],[30A G],[110AG])
) piv;
但是,我得到的每廠訂單多行的結果分佈在每個活動一排,象下面這樣:
Works Order |10A |20A |30A |110A
-------------|----|----|----|----
W123456789 |2 |0 |0 |0
W123456789 |0 |2 |0 |0
我應該如何改變我的查詢,以便將結果合併在一個單一行?
Works Order |10A |20A |30A |110A
-------------|----|----|----|----
W123456789 |2 |2 |0 |0
預先感謝您!
很好,謝謝戈登。我是SQL新手,爲了跟上我的僱主的要求,正在進行自我教育。諸如你的建議非常寶貴。謝謝! – John