表a:
companyname city industry address ......
贵州省遵义化工厂 遵义 制造业 遵义市汇州区.....
广州市城市规划局 广州 政府 广东省吉祥路80号12楼......
重庆信息技术职业学院 重庆 教育 重庆市万州区董家镇巨人路1号
......效果见下表
city 制造业 政府 教育 ...... 汇总
北京 1 2 3 ...... 6+......
上海 30 114 87 ...... 231+......
广州 5 21 69 ...... 95+......
.......
汇总 36+ ... 137+... 159+...... 332+......
1 2 3
30 114 87 这些数字是每个城市公司所属行业的个数
5 21 69
要求是每一行的汇总是各个城市所有行业的总和,每列最后一行统计各行业的总和(sqlserver2000)
companyname city industry address ......
贵州省遵义化工厂 遵义 制造业 遵义市汇州区.....
广州市城市规划局 广州 政府 广东省吉祥路80号12楼......
重庆信息技术职业学院 重庆 教育 重庆市万州区董家镇巨人路1号
......效果见下表
city 制造业 政府 教育 ...... 汇总
北京 1 2 3 ...... 6+......
上海 30 114 87 ...... 231+......
广州 5 21 69 ...... 95+......
.......
汇总 36+ ... 137+... 159+...... 332+......
1 2 3
30 114 87 这些数字是每个城市公司所属行业的个数
5 21 69
要求是每一行的汇总是各个城市所有行业的总和,每列最后一行统计各行业的总和(sqlserver2000)
解决方案 »
- 1,4-10,30 这种形式,如何拆成 9条记录,字段值分别是1,4,5,6,7,8,9,10,30
- 还是sql行转列问题,老虾们别见笑~查了老半天我还是不会啊
- 存储过程的结果保留小数2位怎么是以0.05为单位呢?好奇怪啊
- 远程取数据问题
- 怎麼用存儲過程實現不定表不定條件的查詢
- 有没有将db中已存在data转变为insert sql脚本的工具?
- 为什么局域网中用IP不能连接MSSQL用机器名确可以?
- 有谁知道ERwin的最新版的下载网址??给分
- 大力,你好,我昨天给你在论坛里发了个短消息,问题比较多,请帮忙解答一下好吗。
- 如果不使用游标,怎么做?
- Sql 2005 Reporting Services 矩阵中的小计如何自定义? (有图)
- 将一个ACESS库的考试系统转成了MS-SQL后发现提交表单,服务器CPU100%的问题。
BEGIN
DROP TABLE tableA
ENDCREATE TABLE tableA
(
companyname NVARCHAR(200),
city NVARCHAR(20),
industry NVARCHAR(100)
)INSERT INTO tableA VALUES('北京A公司','北京','教育业')
INSERT INTO tableA VALUES('北京B公司','北京','IT业')
INSERT INTO tableA VALUES('北京C公司','北京','IT业')
INSERT INTO tableA VALUES('北京D公司','北京','工业')
INSERT INTO tableA VALUES('深圳A公司','深圳','教育业')
INSERT INTO tableA VALUES('深圳B公司','深圳','工业')
INSERT INTO tableA VALUES('武汉A公司','武汉','教育业')
INSERT INTO tableA VALUES('武汉B公司','武汉','工业')
INSERT INTO tableA VALUES('武汉C公司','武汉','教育业')
INSERT INTO tableA VALUES('上海A公司','上海','教育业')
INSERT INTO tableA VALUES('上海B公司','上海','工业')
INSERT INTO tableA VALUES('上海C公司','上海','工业')
INSERT INTO tableA VALUES('上海D公司','上海','IT业')
INSERT INTO tableA VALUES('上海E公司','上海','IT业')
INSERT INTO tableA VALUES('天津A公司','天津','教育业')SELECT * FROM tableASELECT ISNULL(a.city,'合计') AS city,SUM(c) AS c FROM
(
SELECT city,COUNT(industry) AS c FROM tableA
GROUP BY city
) AS a
GROUP BY city WITH CUBE
set @sql='select city'
select @sql2=',count(case when industry='+industry+' then 1 else 0 end) ['+industry+']'
from (select distinct industry from table) t
select @sql1='select 汇总'
exec (@sql+@sql2+',count(*) as 汇总 from table group by city union all '+@sql1+@sql2 +' from table group by industry')
if object_id('tempdb..#t') is not null drop table #t
create table #t (id int,city varchar(10),industry varchar(10))
insert into #t
select 1,'广州','教育' union
select 2,'重庆','制造业' union
select 3,'重庆','教育' union
select 4,'北京','服务' union
select 5,'广州','制造业' union
select 6,'广州','教育' union
select 7,'广州','服务' union
select 8,'重庆','教育'declare @sql varchar(1000)
set @sql='select isnull(city,''汇总'') as city'
select @sql=@sql+',sum(case when industry='''+industry+''' then 1 else 0 end) as ['+industry+']'
from (select industry
from #t
group by industry
) a
set @sql=@sql+' from #t group by city with rollup'execute( @sql )/*
city 服务 教育 制造业
---------- ----------- ----------- -----------
北京 1 0 0
广州 1 2 1
重庆 0 2 1
汇总 2 4 2(4 行受影响)
*/