SELECT 年份, 
    SUM(CASE 季度 WHEN 1 THEN 数据 ELSE 0 END) AS 一季度数据,
    SUM(CASE 季度 WHEN 2 THEN 数据 ELSE 0 END) AS 二季度数据,
    SUM(CASE 季度 WHEN 3 THEN 数据 ELSE 0 END) AS 三季度数据,
    SUM(CASE 季度 WHEN 4 THEN 数据 ELSE 0 END) AS 四季度数据
FROM Northwind.dbo.Pivot
GROUP BY 年份

解决方案 »

  1.   

    SELECT 年份, 
        SUM(CASE 季度 WHEN 1 THEN 数据 ELSE 0 END) AS 一季度数据,
        SUM(CASE 季度 WHEN 2 THEN 数据 ELSE 0 END) AS 二季度数据,
        SUM(CASE 季度 WHEN 3 THEN 数据 ELSE 0 END) AS 三季度数据,
        SUM(CASE 季度 WHEN 4 THEN 数据 ELSE 0 END) AS 四季度数据
    FROM 有一表
    GROUP BY 年份
      

  2.   

    如果季度不确定:declare @sql varchar(8000)
    set @sql = 'select 年份'
    select @sql = @sql + ',sum(case 季度 when '''+cast(季度 as varchar)+''' then 数据 else 0 end) as '''+cast(季度 as varchar)+'''季度数据'
      from (select distinct 季度 from 有一表) as aselect @sql = @sql+' from 有一表 group by 年份'exec(@sql)
      

  3.   

    在ORACLE 中如何实现呀?
    谢谢了
      

  4.   

    oracle也有group呀!SELECT 年份, 
        SUM(CASE 季度 WHEN 1 THEN 数据 ELSE 0 END) AS 一季度数据,
        SUM(CASE 季度 WHEN 2 THEN 数据 ELSE 0 END) AS 二季度数据,
        SUM(CASE 季度 WHEN 3 THEN 数据 ELSE 0 END) AS 三季度数据,
        SUM(CASE 季度 WHEN 4 THEN 数据 ELSE 0 END) AS 四季度数据
    FROM 有一表
    GROUP BY 年份
      

  5.   

    我的年份字段为varchar2
    可是他老是显示
    ORA-00979错误不是group by表达式呀?
      

  6.   

    try:select 年,decode(季度,'1',数据) 一季度数据,decode(季度,'2',数据)二季度数据,decode(季度,'3',数据) 三季度数据,decode(季度,'4',数据) 四季度数据 from 表 group by 年;
      

  7.   

    你可以在前台通过query构造出 语句来更新