使用union创建SQL摘要

时间:2014-06-18 13:54:24

标签: sql sql-server union

我目前有一些用于以下列格式创建Excel报告的SQL:

COL1    COL2     COL3
  2       1        8
  3       7        9 
  1       2        4

现在我要做的是总结这些值的总和,并使用UNION ALL将其插入底部(除非当然有更好的方法。)

现在每个列的值都是由sums生成的。我无法理解的概念是如何将最后一行的所有值相加,如果可能的话。

所以输出应该是这样的:

COL1    COL2     COL3
  2       1        8
  3       7        9 
  1       2        4
  6       10       21

谢谢!

3 个答案:

答案 0 :(得分:2)

看起来你想要添加

 WITH ROLLUP

到查询结尾

例如:

Select sum(a) as col1, sum(b) as col2
from yourtable
group by something
with rollup

根据查询的完整性质,您可能更喜欢使用类似的with cube。见http://technet.microsoft.com/en-us/library/ms189305(v=sql.90).aspx

答案 1 :(得分:1)

select 
    col1
    ,col2
    ,col3
from tableA

union

select 
    sum(col1)
    ,sum(col2)
    ,sum(col3)
from tableA

order by col1,col2,col3

答案 2 :(得分:0)

    SELECT COL1, COL2, COL3
    FROM SomeTable
    UNION ALL
    SELECT SUM(COL1), SUM(COL2), SUM(COL3)
    FROM SomeTable

请注意。还有一个ROLLUP子句,但我认为在这种情况下,上述将是一个更简单的解决方案 http://technet.microsoft.com/en-us/library/ms189305%28v=sql.90%29.aspx