分享
 
 
 

数据汇总加排序

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

原帖地址:

http://community.csdn.net/Expert/topic/3317/3317231.xml?temp=.7252313

程序选择了: 项目名称,项目年度,地市,申请单位,支持金额这几个字段

其中汇总字段为项目年度,地市

查询结果列就要按需要项目名称,项目年度,地市,申请单位,支持金额排列好

并能按指定的字段进行排序处理

要求生成的结果:

=================================================================

序号 项目名称 项目年度 地市 申请单位 支持金额

1 名称1 2004 省直 1公司 100

2 名称2 2004 省直 2公司 100

3 2004 省直合计 200

4 名称3 2004 石家庄 3公司 100

5 2004 石家庄合计 100

6 2004合计 300

7 名称3 2005 石家庄 3公司 100

8 2005 石家庄合计 100

9 2005合计 100

10 总计 400

=================================================================

------------------------------------------------------------------------------------

--假设如下临时表是经过第一次汇总+排序处理得到的(第一次处理不处理小计,总计等)

create table #t(项目名称 varchar(10),项目年度 varchar(10),地市 varchar(10),申请单位 varchar(10),支持金额 int)

insert #t select '名称1','2004','省直' ,'1公司',400

union all select '名称2','2004','省直' ,'2公司',300

union all select '名称3','2004','石家庄','3公司',200

union all select '名称3','2005','石家庄','3公司',100

go

--下面是处理

select 项目名称,项目年度,地市,申请单位,支持金额

from( --这是实现汇总的部分(不考虑小计,总计处理部分的汇总)

select *

,s1=0,s2=项目年度,s3=0,s4=地市,s5=0,s6=申请单位,s7=0 --这是排序需要的

from #t

union all

--这是实现汇总的小计,总计部分

select 项目名称=case

when grouping(项目年度)=1 then '总计'

else '' end

,项目年度=case

when grouping(项目年度)=0

and grouping(地市)=1

then 项目年度+'合计'

else '' end

,地市=case

when grouping(项目年度)=0

and grouping(地市)=0

and grouping(申请单位)=1

then 地市+'合计'

else '' end

,申请单位=case

when grouping(申请单位)=0 then 申请单位+'合计'

else '' end

,支持金额=sum(支持金额)

,grouping(项目年度),项目年度 --这里及下面的是排序需要的

,grouping(地市),地市

,grouping(申请单位),申请单位

,grouping(申请单位)+1

from #t

group by 项目年度,地市,申请单位 with rollup --这是要生成小计,总计的分组字段

)a

order by s1,s2,s3,s4,s5,s6,s7,支持金额 --s1~s6是防止小计,总计排序错乱需要的,后面的支持金额是其他排序需要的

go

--删除测试的临时表

drop table #t

/*--测试结果

项目名称 项目年度 地市 申请单位 支持金额

---------- -------------- -------------- -------------- -----------

名称1 2004 省直 1公司 400

1公司合计 400

名称2 2004 省直 2公司 300

2公司合计 300

省直合计 700

名称3 2004 石家庄 3公司 200

3公司合计 200

石家庄合计 200

2004合计 900

名称3 2005 石家庄 3公司 100

3公司合计 100

石家庄合计 100

2005合计 100

总计 1000

(所影响的行数为 14 行)

--*/

--上面是按项目年度,地市,申请单位做小计,总计的

--下面是只按项目年度,地市做小计,总计的,比较一下,更容易看出规律

--下面是处理

select 项目名称,项目年度,地市,申请单位,支持金额

from( --这是实现汇总的部分(不考虑小计,总计处理部分的汇总)

select *

,s1=0,s2=项目年度,s3=0,s4=地市,s5=0 --这是排序需要的

from #t

union all

--这是实现汇总的小计,总计部分

select 项目名称=case

when grouping(项目年度)=1 then '总计'

else '' end

,项目年度=case

when grouping(项目年度)=0

and grouping(地市)=1

then 项目年度+'合计'

else '' end

,地市=case

when grouping(地市)=0

then 地市+'合计'

else '' end

,''

,支持金额=sum(支持金额)

,grouping(项目年度),项目年度 --这里及下面的是排序需要的

,grouping(地市),地市

,grouping(地市)+1

from #t

group by 项目年度,地市 with rollup --这是要生成小计,总计的分组字段

)a

order by s1,s2,s3,s4,s5,支持金额 --s1~s6是防止小计,总计排序错乱需要的,后面的支持金额是其他排序需要的

/*--测试结果

项目名称 项目年度 地市 申请单位 支持金额

---------- -------------- -------------- ---------- -----------

名称2 2004 省直 2公司 300

名称1 2004 省直 1公司 400

省直合计 700

名称3 2004 石家庄 3公司 200

石家庄合计 200

2004合计 900

名称3 2005 石家庄 3公司 100

石家庄合计 100

2005合计 100

总计 1000

(所影响的行数为 10 行)

--*/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有