如何将两行分为一行,并在使用union时加总量

时间:2011-12-22 11:10:19

标签: sql-server-2005

我在我的SQL脚本中使用了union并得到了下面的数据,我的问题是如何将第3行和第4行分组为第0行并总结第3行和第4行的数量。提前感谢!!

自:
        单据行金额

    11000003    1   20.6    
    11000003    2   55  

    11000003    3   55  
    11000003    4   20.6

要:
        单据行金额

    11000003    1   20.6    
    11000003    2   55  

    11000003    0   75.6    

这是我的剧本:

Select Document, Row_number () Over (Partition by DocumentNumber Order by DocumentNumber as Line, Amount
From Table A 

Union 

Select Document, Row_number () Over (Partition by DocumentNumber Order by DocumentNumber as Line, Amount
from Table A

但我想编辑联合结果以符合我的要求,即将其分组到一行并总结金额

2 个答案:

答案 0 :(得分:0)

像这样:

SELECT Document, SUM(Line), SUM(Amount)
FROM tablename
GROUP BY Document

答案 1 :(得分:0)

一个仅与您提供的数据一起使用的示例是:

SELECT Document,Line,Sum(Amount)
FROM
   (SELECT Document,CASE Line WHEN 3 THEN 0 WHEN 4 THEN 0 ELSE Line END as Line,Amount
   FROM
      (<Your current query>) t
   ) t
GROUP BY Document,Line

但我无法知道这是否符合您更广泛的需求,因为您尚未提供太多规范。