`

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
分享到:
评论

相关推荐

    SQL语句将行转换成列

    sql语句将行转换成列 declare @sql varchar(8000) set @sql = 'select 物料代码' select @sql = @sql + ',sum(case 地区 when '''+地区+''' then 数量 end) ['+地区+']' + ',sum(case 地区 when '''+地区+'''...

    case when和sum case when 写法及拼接字段

    1 case when 写法 2 sum case when 用法 3 select 拼接字段 示例如下: when 2 then 'C' else 'D' end ) as '类型',count(*) as '数量' from table group by orderType

    2012 SQL常用操作

    SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分 ,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C#...

    SQL 将一列拆分成多列的三种方法

    数据表中有一列数据,如图所示: 现在需要将该列数据分成三列。 SQL 代码如下所示: ...group by (F1-1)/3 效果 第二种 select c1=a.F1,c2=b.F1,c3=c.F1 from HLR151 a left join HLR151 b on b.F1=a.

    学习SQL语句(强大的group by与select from模式)

    强大的group by 代码如下: select stdname, isnull(sum( case stdsubject when ‘ 化学 ‘ then Result end), 0 ) [化学], isnull(sum( case stdsubject when ‘ 数学 ‘ then Result end), 0 ) [数学], isnull(sum...

    SQLQuery5.sql

    select * from Student ss where ss.s_id in (select s_id as countcid from Score group by s_id having count(c_id)=4 ) select * from Student ss right join (select s_id from Score group by s_id having...

    sqlserver自定义函数

    select @m=case when @m between 1 and 3 then 1 when @m between 4 and 6 then 4 when @m between 7 and 9 then 7 else 10 end select @time=datename(year,@date)+'-'+convert(varchar(10),@m)+'-01' ...

    50个常用SQL语句,很好

    SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分 ,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C#...

    SQL2000_SQL2005_SQL2008语句大全word完整版

    十分好的资源 建议大家一定掌握 例如 -合并处理 SELECT col1, col2=CAST(MIN(col2)as varchar) +CASE WHEN COUNT(*)=3 THEN ',' +CAST((SELECT col2FROM tbWHERE col1=a.col1AND...GROUP BY col1 DROP TABLE tb

    经典全面的SQL语句大全

    select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type  显示结果: type ...

    经典SQL语句大全

    select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type 显示结果: type ...

    SQL Server纵表与横表相互转换的方法

    1,纵表转横表 纵表结构 Table_A: 转换后的结构: 纵表转横表的SQL示例: ...SELECT Name , SUM(CASE WHEN Course = N'语文' THEN Grade ...SUM(CASE WHEN Course = N'数学' THEN Grade...GROUP BY Name 2,横表转纵表

    SQL培训第一期

    1 SQL基础 1.1 基本概念 结构化查询语言(Structured Query ...select后面出现的列,如果没有使用集合函数,必须出现在group by 中。 select sno,sname,sum(grade) from student group by sno,sname; //合法写法 select...

    超实用sql语句

    select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type 显示结果: type ...

    MYSSQL_MSS_ORACLE经典SQL.pdf

    SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分 ,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C#...

    行列转换实例

    select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']' from (select distinct 课程 from tb) as a set @sql = @sql + ' from tb group by 姓名' exec(@sql&#41...

    sql统计类查询语句

    sql统计类代码 select type,count(*) as 总数量, sum(case when level='一级' then 1 else 0 end) as 一级, sum(case when level='二级' then 1 else 0 end) as 二级, ...from table group by type

    数据库行专列技术(SQL)

    declare @s nvarchar...select @s = @s + ',sum(case when subject=''' + cast(subject as varchar) + ''' then result end) as ' + subject from CJ group by subject select @s = @s + ' from CJ group by [name]'

    oracle_sql使用.docx

    在有组函数MAX的select中,不是组函数的列,一定要放在group by子句中。 Case When实现行列转换时会出现多条记录,如果不用聚合函数直接进行group by分组,那么检索的是基表里分组字段的第一条记录,如果使用max()...

Global site tag (gtag.js) - Google Analytics