标题:求助:关于分类汇总的问题
只看楼主
pargy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-10-22
 问题点数:0 回复次数:2 
求助:关于分类汇总的问题
求助:关于分类汇总的问题

表名:aa
结构:
LX     GH     XM     NL    JE1     JE2     JE3
类型   工号   姓名  年龄  金额1   金额2   金额3
机关   001    张三   40   100     100      100
机关   002    李四   35   100     200      300
机关   003    王五   38   200     200      200
野外   001    张三   27   600     600      100
野外   002    赵六   45   1000    1000     800

我想实现以下结构的分类汇总,但我自己写的SQL实现不了,我是用grouping和rollup组合来写的SQL,但我写出来的SQL,汇总的太细了,基本上是每一条就搞一次汇总,不是我希望得到的结构。
求助,请老师和高手门帮帮我,谢谢啦

想实现:
LX     GH     XM     NL    JE1     JE2     JE3
类型   工号   姓名  年龄  金额1   金额2   金额3
机关   001    张三   40   100     100      100
机关   002    李四   35   100     200      300
机关   003    王五   38   200     200      200
机关   小计   3人         400     500      600
野外   001    张三   27   600     600      100
野外   002    赵六   45   1000    1000     800
野外   小计   2人         1600    1600     900
全部   合计   5人         2000    2100     1500
搜索更多相关主题的帖子: 姓名 
2014-10-22 15:28
mxbing1984
Rank: 7Rank: 7Rank: 7
来 自:贵州道真
等 级:贵宾
威 望:37
帖 子:73
专家分:342
注 册:2014-8-8
得分:0 
Select
isnull(LX,'全部') As LX,
isnull(GH,'合计') As GH,
Case When GH is null
Then
    Cconvert(Varchar(10),(Select COUNT(*) From TT A Where LX=TT.LX or TT.LX is null))
Else
    MAX(XM) End+'人' As XM,
Sum(JE1) As JE1,
Sum(JE2) As JE2,
Sum(JE3) aS JE3  
From TT
Group By LX,GH WITH ROLLUP

天再高,踮起脚尖就能更接近阳光
2014-10-23 13:55
tanxiaobin
Rank: 2
等 级:论坛游民
威 望:4
帖 子:20
专家分:41
注 册:2014-9-22
得分:0 
如果想得到跟lz那个一模一样的结构有点麻烦,得先确定你的LX 字段里面是不是只有“机关”和“野外”这两种,如果是的话还好办,我的话会分别生成五张临时表(机关明细一张,机关合计一张,野外明细一张,野外合计一张,总合计一张),然后再把5临时表拼起来最后再排序,可以通过在临时表前增加一或两个特定的标签字段进行分组排序。如果LX字段里面有很多种的话就要用到循环了。。。
2014-11-06 20:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-437540-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.154632 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved