SELECT id,
SUM(CASE ac_code WHEN '41010101' THEN tr_de ELSE 0 END) AS 供应处,
SUM(CASE ac_code WHEN '41010102' THEN tr_de ELSE 0 END) AS 外采,
SUM(CASE ac_code WHEN '41010201' THEN tr_de ELSE 0 END) AS 铸钢毛坯,
SUM(CASE ac_code WHEN '41010202' THEN tr_de ELSE 0 END) AS 锻造毛坯,
SUM(CASE ac_code WHEN '41010203' THEN tr_de ELSE 0 END) AS 铸铁毛坯,
SUM(CASE ac_code WHEN '410103' THEN tr_de ELSE 0 END) AS 减联件,
SUM(CASE ac_code WHEN '410104' THEN tr_de ELSE 0 END) AS 焊接成本,
SUM(CASE ac_code WHEN '410105' THEN tr_de ELSE 0 END) AS 加工二厂成本,
SUM(CASE ac_code WHEN '410106' THEN tr_de ELSE 0 END) AS 装配成本,
SUM(CASE ac_code WHEN '41010701' THEN tr_de ELSE 0 END) AS 供应处,
SUM(CASE ac_code WHEN '41010702' THEN tr_de ELSE 0 END) AS 外采
FROM CostAnalyse.dbo.有令库
GROUP BY id有什么问题?

解决方案 »

  1.   

    这样的写法肯定是有问题的啦.你用union把这几个分别串起来...
    SELECT id,
    SUM(CASE ac_code WHEN '41010101' THEN tr_de ELSE 0 END) AS 供应处,
    外采=0,
    铸钢毛坯=0,
    锻造毛坯=0,
    铸铁毛坯=0,
    减联件=0,
    焊接成本=0,
    加工二厂成本=0
    FROM CostAnalyse.dbo.有令库
    GROUP BY id
    union
    SELECT id,
    供应处=0,
    SUM(CASE ac_code WHEN '41010102' THEN tr_de ELSE 0 END) AS 外采,
    铸钢毛坯=0,
    锻造毛坯=0,
    铸铁毛坯=0,
    减联件=0,
    焊接成本=0,
    加工二厂成本=0,
    装配成本=0,
    供应处=0,
    外采=0
    FROM CostAnalyse.dbo.有令库
    GROUP BY id
    union...
      

  2.   

    union??
    这样的写法有什么错误!!
    理解!!