1
是否可以使用多個CASE語句來並排返回(相同的行)結果?我已閱讀了許多與CASE相關的帖子,但沒有看到具體解決這個問題。使用多個CASE語句
我有2個樣本表: 交易
RowID TrxNo
1 12345
2 23456
3 34567
4 45678
5 56789
6 67890
7 78901
和文檔
RowID TrxNo DocNo
1 12345 1
2 12345 2
3 12345 3
4 23456 1
5 34567 1
6 34567 2
7 45678 1
8 45678 2
9 56789 1
10 56789 2
11 56789 3
基於這些表,這個查詢
SELECT T.TrxNo
,CASE WHEN D.DocNo = 1 THEN D.DocNo ELSE 0 END AS Doc1
,CASE WHEN D.DocNo = 2 THEN D.DocNo ELSE 0 END AS Doc2
,CASE WHEN D.DocNo = 3 THEN D.DocNo ELSE 0 END AS Doc3
FROM [dbo].[Transaction] T
LEFT OUTER JOIN
[dbo].[Document] D ON D.TrxNo = T.TrxNo
返回
TrxNo Doc1 Doc2 Doc3
12345 1 0 0
12345 0 2 0
12345 0 0 3
23456 1 0 0
34567 1 0 0
34567 0 2 0
45678 1 0 0
45678 0 2 0
56789 1 0 0
56789 0 2 0
56789 0 0 3
67890 0 0 0
78901 0 0 0
我想它返回
TrxNo Doc1 Doc2 Doc3
12345 1 2 3
23456 1 0 0
34567 1 2 0
45678 1 2 0
56789 1 2 3
67890 0 0 0
78901 0 0 0
這是我的第一篇 - 我希望的信息呈現不夠清楚。
我花了很多時間試圖「修復」這我想要的,沒有考慮到聚合解決的方式。非常感謝您的快速,現場響應。 – twinspar 2014-10-20 11:59:17