自认为比较难的问题 希望大家帮忙解决(在线等)
有这样一组数据
日期 组织结构 发送数量
2007-07 技术部门 1
2007-07 总经理 1
2007-08 总经理 2
2007-10 技术部门 1
想得到如下结构
2007-07 技术部门 1
2007-07 总经理 1
小结 2
2007-08 总经理 2
小结 2
2007-10 技术部门 1
小结 1
合计 4
------解决方案--------------------select isnull(日期,case when 组织结构 is null then '合计 ' else ' ' end),isnull(组织结构,case when 日期 is null then ' ' else '小结 ' end),sum(发送数量) from 表 group by 日期,组织结构 with rollup
------解决方案--------------------declare @t table(日期 varchar(10),组织结构 varchar(10),发送数量 int)
insert into @t select '2007-07 ', '技术部门 ',1
insert into @t select '2007-07 ', '总经理 ',1
insert into @t select '2007-08 ', '总经理 ',2
insert into @t select '2007-10 ', '技术部门 ',1
select
(case when 日期 is null then '合计 ' when 组织结构 is null then ' ' else 日期 end) as 日期,
(case when 日期 is not null and 组织结构 is null then '小计 ' else 组织结构 end) as 组织结构,
sum(发送数量) as 发送数量
from
@t t
group by
日期,组织结构
with rollup
/*
日期 组织结构 发送数量
---------- ---------- -----------
2007-07 技术部门 1
2007-07 总经理 1
小计 2
2007-08 总经理 2
小计 2
2007-10 技术部门 1
小计 1
合计 NULL 5
*/