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 名称,规格')

解决方案 »

  1.   

    to zjcxc(邹建) 谢谢大侠,不过还是没有更改表二,怎么回事?
    看不太懂.如果表二中的名称、规格已存在,用update将表一的数据汇总到表二,该如何解决?
      

  2.   

    PDATE 表1
    SET 表1.原料 =
              (SELECT SUM(金额)
             FROM 表2
             WHERE 表1.产品名称 = 表2.产品名称 AND 
                   表1.产品规格 = 表2.产品规格 AND 
                   表2.物料类型 = '原料’)
    FROM 表1, 表2
    WHERE 表1.产品名称 = 表2.产品名称 AND 
          表1.产品规格 = 表2.产品规格 以此类推添加    辅料   包装物   能源   工资