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
不好意思,还是有些问题 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
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
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
when a_date=2 then a_mnt else 0 end) as 2月
.
.
end) as 12月
from table
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
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
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