博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UNION ALL实现的分级汇总示例.sql
阅读量:5251 次
发布时间:2019-06-14

本文共 783 字,大约阅读时间需要 2 分钟。

DECLARE @t TABLE(Item varchar(10),Color varchar(10),Quantity int)
INSERT @t SELECT 'Table','Blue',124
UNION ALL SELECT 'Table','Red', -23
UNION ALL SELECT 'Chair','Blue',101
UNION ALL SELECT 'Chair','Red', -90
--统计
SELECT Item,Color,Quantity
FROM(
    --明细
    SELECT Item,Color,Quantity=SUM(Quantity)
        ,s1=0,s2=Item,s3=0
    FROM @t
    GROUP BY Item,Color
    UNION ALL
    --各Item合计
    SELECT '',Item+' 合计',Quantity=SUM(Quantity)
        ,s1=0,s2=Item,s3=1
    FROM @t
    GROUP BY Item
    UNION ALL
    --总计
    SELECT '总计','',Quantity=SUM(Quantity)
        ,s1=1,s2='',s3=1
    FROM @t
)a ORDER BY s1,s2,s3
/*--结果
Item       Color           Quantity
-------------- ---------------------- -----------
Chair      Blue            101
Chair      Red             -90
          Chair 合计       11
Table      Red             -23
Table      Blue            124
          Table 合计       101
总计                      112
--*/

转载于:https://www.cnblogs.com/shihao/archive/2012/05/20/2510806.html

你可能感兴趣的文章
【SVM】libsvm-python
查看>>
C++循环单链表删除连续相邻重复值
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
ASP.NET使网页弹出窗口不再困难
查看>>
Leetcode Balanced Binary Tree
查看>>
Leetcode 92. Reverse Linked List II
查看>>
windown快速安装xgboost
查看>>
Linux上安装Libssh2
查看>>
九.python面向对象(双下方法内置方法)
查看>>
go:channel(未完)
查看>>
[JS]递归对象或数组
查看>>
LeetCode(17) - Letter Combinations of a Phone Number
查看>>
Linux查找命令对比(find、locate、whereis、which、type、grep)
查看>>
路由器外接硬盘做nas可行吗?
查看>>
python:从迭代器,到生成器,再到协程的示例代码
查看>>
Java多线程系列——原子类的实现(CAS算法)
查看>>
在Ubuntu下配置Apache多域名服务器
查看>>
多线程《三》进程与线程的区别
查看>>
linux sed命令
查看>>
html标签的嵌套规则
查看>>