2014-12-02 62 views
0

獲取基於標識和我有一個表作爲SQL服務器:從單個列

enter image description here

我需要的結果是

enter image description here

我只有兩個CaseNo,1和2 。 如何在單個查詢中執行此操作,而不是通用表格表達式或單獨的查詢?

+2

CTE是一個查詢。 – 2014-12-02 13:07:53

+0

CTE是單個查詢,但是再次需要從cte中選擇。 – Lali 2014-12-02 13:13:06

回答

3

可以使用條件彙總:

select 1 as CaseNo1, sum(case when CaseNo = 1 then Amount end) as Amount1, 
     2 as CaseNo2, sum(case when CaseNo = 2 then Amount end) as Amount2 
from table; 

不過,我不建議這樣做在SQL這個轉變。如果您需要在應用程序中使用此格式的數據,則應該在應用程序層中執行此操作。

+0

我剛剛發佈相同的代碼。我同意。另外,只要你得到'CaseNo3',事情就會變得越來越醜。 – Andrew 2014-12-02 13:13:26

+0

完美,我正在考慮一些自我加入。 對不起,我有限的知識。 我無法理解爲什麼我的問題被降級。 – Lali 2014-12-02 13:21:03

0
SELECT 'Amount' , 
[1], [2] 
FROM 
(SELECT CaseNo, Amount 
    FROM table) AS SourceTable 
PIVOT 
(
sum(Amount) 
FOR CaseNo IN ([1], [2]) 
) AS PivotTable;