您的位置:首页 > 其它

模拟多级表头的分组统计

2008-04-27 03:40 162 查看
原帖地址: http://community.csdn.net/Expert/topic/3434/3434688.xml?temp=3.246486E-03
--测试数据
createtable单位表(单位代码varchar(10),单位名称varchar(50))
insert单位表values('01' ,'中国单位') --1级
insert单位表values('0101' ,'山东单位') --2级
insert单位表values('010101' ,'山东济南单位') --3级
insert单位表values('010102' ,'山东青岛单位') --3级
insert单位表values('01010201','山东青岛即默单位一') --4级
insert单位表values('01010202','山东青岛即默单位二') --4级
insert单位表values('0102' ,'山西单位') --2级
insert单位表values('010201' ,'山西大同单位') --3级
insert单位表values('0103' ,'陕西单位') --2级
insert单位表values('010301' ,'陕西西安单位') --3级
--insert单位表values('01030101' ,'陕西西安A单位') --3级
--insert单位表values('0103010101' ,'陕西西安aa单位') --3级
insert单位表values('010302' ,'陕西咸阳单位') --3级

createtable供应表(物资编号varchar(10),物资名称varchar(50),单位代码varchar(10),供应数量int)
insert供应表values('0001','电子称','010101',1)
insert供应表values('0002','电动机','010101',1)
insert供应表values('0001','电子称','01010201',1)
insert供应表values('0002','电动机','01010201',1)
insert供应表values('0001','电子称','010201',1)
insert供应表values('0003','电动刷','010201',1)
insert供应表values('0004','电动车','010302',1)
go

/*--要求

分级汇总,然后转置得到如下结果:
select'','','','中国单位','中国单位','中国单位','中国单位','中国单位','中国单位','中国单位','中国单位','中国单位'
unionallselect'','','','山东单位','山东单位','山东单位','山东单位','山西单位','山西单位','陕西单位','陕西单位','陕西单位'
unionallselect'','','','','','山东青岛单位','山东青岛单位','','','','',''
unionallselect'序号','装备名称','合计','小计','山东济南单位','山东青岛即默单位一','山东青岛即默单位二','小计','山西大同单位','小计','陕西西安单位','陕西咸阳单位'
unionallselect'','总计','7','4','2','2','','2','2','1','','1'
unionallselect'1','(0001)电子称','3','2','1','1','','1','1','','',''
unionallselect'2','(0002)电动机','2','2','1','1','','','','','',''
unionallselect'3','(0003)电动刷','1','','','','','1','1','','',''
unionallselect'4','(0004)电动车','1','','','','','','','1','','1'共2页 第1页
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: