详细信息后的SQL摘要行

Day*_*own 4 sql sql-server

嗨Stackoverflow超级明星......

这是我的问题.我有一个存储过程,输出一个非常简单的分组和求和值表.典型的东西......公司名称,公司客户数量,公司业务代表,公司年收入等.

这很好.

我现在需要的是摘要行.输出的最后一行应该是客户端数量,年收入等的总和.通过点击excel中的autosum按钮,你可以做同样的事情.(顺便说一句,这正是我们现在所做的.)

我的初衷是将所有数据插入存储过程中的临时表中,然后在吐出数据之前在最后插入汇总值.

思考?这种方式太混乱了吗?

谢谢,

cjk*_*cjk 6

将WITH ROLLUP添加到查询的末尾.这将为每个分组提供摘要行.您可以使用GROUPING(列)函数添加一个额外的列,以确定该行是否为汇总行.

MSDN示例:

SELECT CASE WHEN (GROUPING(Item) = 1) THEN 'ALL'
            ELSE ISNULL(Item, 'UNKNOWN')
       END AS Item,
       CASE WHEN (GROUPING(Color) = 1) THEN 'ALL'
            ELSE ISNULL(Color, 'UNKNOWN')
       END AS Color,
       SUM(Quantity) AS QtySum
FROM Inventory
GROUP BY Item, Color WITH ROLLUP
Run Code Online (Sandbox Code Playgroud)
Item                 Color                QtySum                     
-------------------- -------------------- -------------------------- 
Chair                Blue                 101.00                     
Chair                Red                  210.00                     
Chair                ALL                  311.00                     
Table                Blue                 124.00                     
Table                Red                  223.00                     
Table                ALL                  347.00                     
ALL                  ALL                  658.00