数据表 id  date      score      name  
1    2012-12-1  80          A
2    2012-12-9  50          A
2    2012-12-2  90          B
3    2012-11-4  50          C问下 按月份分组 怎么 写SQL语句 12月份的数据 A 65
B 90
C 0
SQL SERVER 2008sql serversql

解决方案 »

  1.   

    select convert(varchar(7),date) as date,name,sum(score)score
    from table
    group by convert(varchar(7),date),name
      

  2.   

    select convert(varchar(7),date) as date,b.name,sum(isnull(score,0))score
    from table a right join 
    (select distinct name from table) b on a.name=b.name
    where convert(varchar(7),date)='2012-12'
    group by convert(varchar(7),date),name 
      

  3.   

    SQL SERVER 2008里面似乎没有用啊?直接无视C的
      

  4.   


    select '2012-12' as date,b.name,sum(isnull(score,0))score
    from #t a right join 
    (select distinct name from #t) b on a.name=b.name
    and convert(varchar(7),date)='2012-12'
    group by convert(varchar(7),date),b.name 
      

  5.   

    非常感谢szm341    有啥好的SQL视频教程瓦 很多基础的东西都不会。
      

  6.   

    有电子书吗 邮一个给我 [email protected]