select sum(case when a_date=1 then a_mnt else 0 
                when a_date=2 then a_mnt else 0
                .
                .
                                                end) 
    from table

解决方案 »

  1.   

    select sum(case when a_date=1 then a_mnt else 0 end) as 1月 
                    when a_date=2 then a_mnt else 0 end) as 2月
                    .
                    .
                                                    end) as 12月
        from table
      

  2.   

    不好意思,还是有些问题
    select sum(case when a_date=1 then a_mnt else 0 end) as 1月
           sum(case when a_date=2 then a_mnt else 0 end) as 2月
                    .
                    .
                                                    end) as 12月
        from table
      

  3.   

    declare @sql varchar(8000)
    set @sql = 'select 'select @sql = @sql + 'sum(case convert(char(6),A_date,112) when '''+[temp]+''' 
                              then a_mnt else 0 end) as '''+[temp]+''','
      from (select distinct convert(char(6),A_date,112) [temp] from 表A where year(A_date)=@你的年如2002) as aselect @sql = left(@sql,len(@sql)-1) + ' from 表A'print @sql
    exec(@sql)
    go
      

  4.   

    declare @sql varchar(8000)
    set @sql = 'select 'select @sql = @sql + 'sum(case convert(char(6),A_date,112) when '''+[temp]+''' 
                              then a_mnt else 0 end) as '''+[temp]+''','
      from (select distinct convert(char(6),A_date,112) [temp] from 表A where year(A_date)=@你的年如2002) as aselect @sql = left(@sql,len(@sql)-1) + ' from 表A'exec(@sql)
    go