select 创建人,sum(case when 工作类型='T106' then 耗时 else 0 end) as T106,
sum(case when 工作类型='T102' then 耗时 else 0 end) as T102,
sum(case when 工作类型='T106' then 耗时 else 0 end)
+sum(case when 工作类型='T102' then 耗时 else 0 end) as 总耗时
from test where 工作类型 in ('T106','T102') or 创建人 in ('A','B')
group by 创建人;
create table tablef(创建人 char(20),t101 float,t102 float,t105 float,t106 float
)
create proc t
as
declare @sql varchar(800)
set @sql='select 创建人'
select @sql =@sql+', max(case 工作类型 when '''+工作类型+''' then 耗时 else 0 end )['+工作类型+']'
from (select distinct 工作类型 from tabled ) as a
set @sql= @sql+'from tabled group by 创建人'
insert into tablef
exec(@sql)
select 创建人, t106,t102 ,sum(t106+t102) from tablef where 创建人 in ('a','b') group by 创建人, t106,t102
select 创建人 , sum(耗时) 总耗时 ,
,case 工作类型 when T106 then 耗时 else 0 end T106
,case 工作类型 when T102 then 耗时 else 0 end T102
,case 工作类型 when T101 then 耗时 else 0 end T101
group by 创建人
二楼的可以