declare @sql varchar(2000)set @sql = 'select 部门号'
select @sql = @sql + ',sum(case 月份 when '''+月份+''' then 应发金额 end) ['+ 月份+']'
from (select distinct 种类 from t1) as a
set @sql=@sql+',sum(应发金额) as 小计'
select @sql = @sql+' from t1 group by 部门号'
exec(@sql)要获得部门名需要关联其他的table吧
select @sql = @sql + ',sum(case 月份 when '''+月份+''' then 应发金额 end) ['+ 月份+']'
from (select distinct 种类 from t1) as a
set @sql=@sql+',sum(应发金额) as 小计'
select @sql = @sql+' from t1 group by 部门号'
exec(@sql)要获得部门名需要关联其他的table吧
select 部门号,
'1月'=sum(case
when 月份='1月' then 应发金额 else 0 end),
'2月'=sum(case
when 月份='2月' then 应发金额 else 0 end),
'3月'=sum(case
when 月份='3月' then 应发金额 else 0 end),
'4月'=sum(case
when 月份='4月' then 应发金额 else 0 end),
'5月'=sum(case
when 月份='5月' then 应发金额 else 0 end),
'6月'=sum(case
when 月份='6月' then 应发金额 else 0 end),
'7月'=sum(case
when 月份='7月' then 应发金额 else 0 end),
'8月'=sum(case
when 月份='8月' then 应发金额 else 0 end),
'9月'=sum(case
when 月份='9月' then 应发金额 else 0 end),
'10月'=sum(case
when 月份='10月' then 应发金额 else 0 end),
'11月'=sum(case
when 月份='11月' then 应发金额 else 0 end),
'12月'=sum(case
when 月份='12月' then 应发金额 else 0 end),
sum(应发金额) as 小计from 工资 group by 部门号我试了最后的小记是对的 但是1月到12月下面 全部不显示金额 都是 0
看 一下哪里错了哦
如果要把部门号 显示成部门名 是不是要 join 部门表哦?