sql表cw_base中有 姓名,年,月,收入  字段怎么实现在下面12月后加一列 汇总
行也同样在最后一行加一行汇总SELECT 姓名, 年, 
    SUM(CASE 月  WHEN 01 THEN 收入 ELSE 0 END) AS '1月',
    SUM(CASE 月  WHEN 2 THEN 收入 ELSE 0 END) AS '2月',
    SUM(CASE 月  WHEN 3 THEN 收入 ELSE 0 END) AS '3月',
    SUM(CASE 月  WHEN 4 THEN 收入 ELSE 0 END) AS '4月',
    SUM(CASE 月  WHEN 5 THEN 收入 ELSE 0 END) AS '5月',
    SUM(CASE 月 WHEN 6 THEN 收入 ELSE 0 END) AS '6月',
    SUM(CASE 月  WHEN 7 THEN 收入 ELSE 0 END) AS '7月',
    SUM(CASE 月  WHEN 8 THEN 收入 ELSE 0 END) AS '8月',
    SUM(CASE 月  WHEN 9 THEN 收入 ELSE 0 END) AS '9月',
    SUM(CASE 月  WHEN 10 THEN 收入 ELSE 0 END) AS '10月',
    SUM(CASE 月  WHEN 11 THEN 收入 ELSE 0 END) AS '11月',
    SUM(CASE 月 WHEN 12 THEN 收入 ELSE 0 END) AS '12月'
FROM cw_base where 年=2010
GROUP BY 姓名,年

解决方案 »

  1.   

    SELECT 姓名, 年,  
      SUM(CASE 月 WHEN 01 THEN 收入 ELSE 0 END) AS '1月',
      SUM(CASE 月 WHEN 2 THEN 收入 ELSE 0 END) AS '2月',
      SUM(CASE 月 WHEN 3 THEN 收入 ELSE 0 END) AS '3月',
      SUM(CASE 月 WHEN 4 THEN 收入 ELSE 0 END) AS '4月',
      SUM(CASE 月 WHEN 5 THEN 收入 ELSE 0 END) AS '5月',
      SUM(CASE 月 WHEN 6 THEN 收入 ELSE 0 END) AS '6月',
      SUM(CASE 月 WHEN 7 THEN 收入 ELSE 0 END) AS '7月',
      SUM(CASE 月 WHEN 8 THEN 收入 ELSE 0 END) AS '8月',
      SUM(CASE 月 WHEN 9 THEN 收入 ELSE 0 END) AS '9月',
      SUM(CASE 月 WHEN 10 THEN 收入 ELSE 0 END) AS '10月',
      SUM(CASE 月 WHEN 11 THEN 收入 ELSE 0 END) AS '11月',
      SUM(CASE 月 WHEN 12 THEN 收入 ELSE 0 END) AS '12月',
      SUM(月)AS '汇总'
    FROM cw_base where 年=2010
    GROUP BY rollup (姓名,年)
      

  2.   

    SELECT 姓名, 年,  
      SUM(CASE 月 WHEN 01 THEN 收入 ELSE 0 END) AS '1月',
      SUM(CASE 月 WHEN 2 THEN 收入 ELSE 0 END) AS '2月',
      SUM(CASE 月 WHEN 3 THEN 收入 ELSE 0 END) AS '3月',
      SUM(CASE 月 WHEN 4 THEN 收入 ELSE 0 END) AS '4月',
      SUM(CASE 月 WHEN 5 THEN 收入 ELSE 0 END) AS '5月',
      SUM(CASE 月 WHEN 6 THEN 收入 ELSE 0 END) AS '6月',
      SUM(CASE 月 WHEN 7 THEN 收入 ELSE 0 END) AS '7月',
      SUM(CASE 月 WHEN 8 THEN 收入 ELSE 0 END) AS '8月',
      SUM(CASE 月 WHEN 9 THEN 收入 ELSE 0 END) AS '9月',
      SUM(CASE 月 WHEN 10 THEN 收入 ELSE 0 END) AS '10月',
      SUM(CASE 月 WHEN 11 THEN 收入 ELSE 0 END) AS '11月',
      SUM(CASE 月 WHEN 12 THEN 收入 ELSE 0 END) AS '12月',
      Sum(收入) as '汇总'
    FROM cw_base where 年=2010
    GROUP BY 姓名,年
    union all
    SELECT '汇总', '',  
      SUM(CASE 月 WHEN 01 THEN 收入 ELSE 0 END) AS '1月',
      SUM(CASE 月 WHEN 2 THEN 收入 ELSE 0 END) AS '2月',
      SUM(CASE 月 WHEN 3 THEN 收入 ELSE 0 END) AS '3月',
      SUM(CASE 月 WHEN 4 THEN 收入 ELSE 0 END) AS '4月',
      SUM(CASE 月 WHEN 5 THEN 收入 ELSE 0 END) AS '5月',
      SUM(CASE 月 WHEN 6 THEN 收入 ELSE 0 END) AS '6月',
      SUM(CASE 月 WHEN 7 THEN 收入 ELSE 0 END) AS '7月',
      SUM(CASE 月 WHEN 8 THEN 收入 ELSE 0 END) AS '8月',
      SUM(CASE 月 WHEN 9 THEN 收入 ELSE 0 END) AS '9月',
      SUM(CASE 月 WHEN 10 THEN 收入 ELSE 0 END) AS '10月',
      SUM(CASE 月 WHEN 11 THEN 收入 ELSE 0 END) AS '11月',
      SUM(CASE 月 WHEN 12 THEN 收入 ELSE 0 END) AS '12月',
      Sum(收入) as '汇总'
    FROM cw_base where 年=2010
    GROUP BY 姓名 不太清楚你下面一行的汇总数据逻辑,方法差不多吧
    参考参考