sql select case when group by 行转列

XJrain表里存放每天的雨量,我想一次显示过去一天,过去二天,过去三天的雨量统计,sql语句该如何写啊?

http://zhidao.baidu.com/link?url=XE9ntJfmQ8s_s9czv6UOSP6l-fR2tp1pZeGiEBtIo6mNtUXl46AO26omwTnuItHAgODc268Axb8AM2f6TNXtp_    
select 站名, 

sum(case when  日期 > 20090829  then 雨量 else 0 end ) 雨量1,

sum(case when  日期 > 20090830  then 雨量 else 0 end ) 雨量2,

sum(case when  日期 > 20090831  then 雨量 else 0 end ) 雨量3,

from dbo.XJrain 

group by  站名
有表如下
姓名  年度  科目  成绩
张三  2008  语文  95
李四  2009  数学  100
李四  2007  语文  50
张三  2010  语文  99
要查询成 
姓名 年度 语文 数学
张三 2008  95   0
张三 2010  99   0
李四 2007  50   0
李四 2009  0   100
select names,dt,
sum(case when str1='语文' then num else 0 end) As '语文' ,
sum(case when str1='英语' then num else 0 end) As '英语'  ,
sum(case when str1='数学' then num else 0 end) As '数学'  ,
sum(case when str1='历史' then num else 0 end) As '历史' 
from dbtest group by names,dt

猜你喜欢

转载自2594082lhj.iteye.com/blog/1987829