SQL Server:根据单列的Id获取总和

时间:2014-12-02 13:06:50

标签: sql sql-server database

我有一张桌子

enter image description here

我需要结果

enter image description here

我只有两个CaseNo,1和2。 如何在单个查询中执行此操作,而不是常见的表表达式或单独的查询?

2 个答案:

答案 0 :(得分: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中进行此转换。如果您需要在应用程序中使用此格式的数据,则应该在应用程序层中执行此操作。

答案 1 :(得分:0)

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