请教一条关于汇总的sql
表结构:
时间 地名 环境情况
1 北京 优秀
2 北京 良好
3 北京 差
4 天津 良好
5 天津 良好
6 上海 差
要求得到的结果:
地点 优秀 良好 差
北京 1 1 1
天津 2 0 0
上海 0 0 1
问题点数:40、回复次数:3Top
1 楼dutguoyi(新鲜鱼排)回复于 2006-06-02 11:05:24 得分 35
create table t([date] int identity(1,1),place nvarchar(10),circumstance nvarchar(10))
insert t select N'北京',N'优秀'
union all select N'北京',N'良好'
union all select N'北京',N'差'
union all select N'天津',N'良好'
union all select N'天津',N'良好'
union all select N'上海',N'差'
select place [地点],
sum(case circumstance when N'优秀' then 1 else 0 end) [优秀],
sum(case circumstance when N'良好' then 1 else 0 end) [良好],
sum(case circumstance when N'差' then 1 else 0 end) [差]
from t
group by place
drop table t
/*
地点 优秀 良好 差
---------- ----------- ----------- -----------
上海 0 0 1
天津 0 2 0
北京 1 1 1
*/
还是去SQL Server问这样的问题吧Top
2 楼7712190(25458848@163.com)回复于 2006-06-02 11:07:11 得分 5
楼上的回答 类似教科书Top
3 楼zhmvb(星期六)回复于 2006-06-02 13:14:26 得分 0
Select
uncd,
sum(case infoty when '1' then 1 else 0 end) as 早报,
sum(case infoty when '2' then 1 else 0 end) as 迟报,
sum(case infoty when '3' then 1 else 0 end) as 漏报,
sum(case infoty when '4' then 1 else 0 end) as 错报
From ST_INFSMRY_C
group by uncdTop




