select 
    月份=convert(char(7),saledate,120),
    数量=count(*) 
from 
    表 
group by 
    月份 
order by 
    数量 desc

解决方案 »

  1.   

    select left(saledate,7) as '月份'
           ,count(1) as '数量'
    from 表
    group by left(saledate,7)
      

  2.   

    --楼上的别名不能Group by 吧!select 
        月份=convert(char(7),saledate,120),
        数量=count(*) 
    from 
        @t 
    group by 
        convert(char(7),saledate,120) 
    order by 
        数量 desc
      

  3.   

    --不好意思,我说的是:libin_ftsafe(子陌红尘),不是我现在楼上!
      

  4.   

    select 
        月份=convert(char(7),saledate,120),
        数量=count(*) 
    from 
        表 
    where
        datediff(yy,saledate,getdate())=0
    group by 
        月份 
    order by 
        数量 desc
      

  5.   

    select 
        月份=convert(char(7),saledate,120),
        数量=count(*) 
    from 
        表 
    where
        datediff(yy,saledate,getdate())=0
    group by 
        convert(char(7),saledate,120) 
    order by 
        数量 desc
      

  6.   

    vivianfdlpw(),楼主说的是要本年度的,你的语句需要加一个条件: 
     
       select left(saledate,7) as '月份',count(1) as '数量'
         from 表 Where Left(saledate,4) = '2005'  --或者Left(saledate,4) = Year(GetDate())  
         group by left(saledate,7)
      以上处理的是saledate是char或varchar类型,
      如果saledate是日期型,那么就应该用下面的语句
       select year(saledate)+'-'+month(saledate) as '月份',count(1) as '数量'
         from 表 Where year(saledate) = '2005'  --或者Left(saledate,4) = Year(GetDate())  
         group by year(saledate)+'-'+month(saledate) 
      

  7.   

    当然还有其他的写法,比如说将日期转化成字符串除了用year(saledate)+'-'+month(saledate) ,还可以用convert等