最后一行中的SUM值

时间:2016-12-14 14:34:15

标签: sql sql-server sum

我有值的表

    +--------+------------+-------------+
    |  XPK   | Money      | NumOfDevices|
    +--------+------------+-------------+
    |      1 | 1000       | 2           | 
    |      2 | 2000       | 3           |
    |      3 | 3000       | 4           |
    +--------+------------+-------------+

需要对所有值求和并输入星号" *"在整行中将TOTAL值与其他值分开,因此结果需要看起来像这样

        +--------+------------+-------------+
        |  XPK   | Money      | NumOfDevice |
        +--------+------------+-------------+
        |      1 | 1000       | 2           | 
        |      2 | 2000       | 3           |
        |      3 | 3000       | 4           |
        |***********************************|
        | TOTAL  | 6000       | 9           |
        +--------+------------+-------------+

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用UNION从表格中选择总数:

Select  Convert(Varchar (10), XPK) XPK, 
        Money,
        NumOfDevices
From    YourTable
Union
Select  'TOTAL' As XPK,
        Sum(Money),
        Sum(NumOfDevices)
From    YourTable
Order By Case When XPK = 'TOTAL' Then 1 Else 0 End, XPK

另一种方法是使用GROUP BY WITH ROLLUP

Select  Case When Grouping(XPK) = 1 
            Then 'TOTAL' 
            Else Convert(Varchar (10), XPK) 
        End As XPK,
        Sum(Money)          Money,
        Sum(NumOfDevices)   NumOfDevices
From    YourTable
Group By XPK With Rollup
Order By Grouping(XPK)
相关问题