declare @s varchar(8000)
set @s=''
select @s=@s+',['+物料类型+']=sum(case 物料类型 when '''+物料类型+''' then 金额 else 0 end)'
from 表一 group by 物料类型
exec('select 名称,规格'+@s+' from 表一 group by 名称,规格')
set @s=''
select @s=@s+',['+物料类型+']=sum(case 物料类型 when '''+物料类型+''' then 金额 else 0 end)'
from 表一 group by 物料类型
exec('select 名称,规格'+@s+' from 表一 group by 名称,规格')
看不太懂.如果表二中的名称、规格已存在,用update将表一的数据汇总到表二,该如何解决?
SET 表1.原料 =
(SELECT SUM(金额)
FROM 表2
WHERE 表1.产品名称 = 表2.产品名称 AND
表1.产品规格 = 表2.产品规格 AND
表2.物料类型 = '原料’)
FROM 表1, 表2
WHERE 表1.产品名称 = 表2.产品名称 AND
表1.产品规格 = 表2.产品规格 以此类推添加 辅料 包装物 能源 工资