select g.工序 as 车间,sum(g.单日产量) as [产量(KG)],
case g.工序 when N'搅拌' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('A1','A2','C2','C3'))
when N'热压' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('C4','C5','D1','D2','D3','D4','D6','M'))
when N'内外磨' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('F','G1','G2','H'))
end as [废次品(KG)]
from gxu g
group by g.工序我想问下怎么样实现[产量(KG)],[废次品(KG)]这两列的总和,根据上面的语句,再用一条sql代码显示出来

解决方案 »

  1.   

    Select *, ([产量(KG)]+[废次品(KG)]) as 总合  from (select g.工序 as 车间,sum(g.单日产量) as [产量(KG)],
    case g.工序 when N'搅拌' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('A1','A2','C2','C3'))
    when N'热压' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('C4','C5','D1','D2','D3','D4','D6','M'))
    when N'内外磨' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('F','G1','G2','H'))
    end as [废次品(KG)]
    from gxu g
    group by g.工序) b
      

  2.   

    select g.工序 as 车间,sum(g.单日产量) as [产量(KG)],
    case g.工序 when N'搅拌' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('A1','A2','C2','C3'))
    when N'热压' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('C4','C5','D1','D2','D3','D4','D6','M'))
    when N'内外磨' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('F','G1','G2','H'))
    end as [废次品(KG)],[产量(KG)]+ [废次品(KG)] as [总和]
    from gxu g
    group by g.工序
      

  3.   

    select 车间,[产量(KG)],[废次品(KG)],isnull([产量(KG)]) + isnull([废次品(KG)],0) as [总重量(KG)]
    from (
    select g.工序 as 车间,sum(g.单日产量) as [产量(KG)],
    case g.工序 when N'搅拌' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('A1','A2','C2','C3'))
    when N'热压' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('C4','C5','D1','D2','D3','D4','D6','M'))
    when N'内外磨' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('F','G1','G2','H'))
    end as [废次品(KG)]
    from gxu g
    group by g.工序)tb
      

  4.   

    你们理解错了是:产量(KG)]所有列的和,废次品(KG)]列的和
      

  5.   

    是所有行的和吧?
    select sum(g.单日产量) as [产量(KG)],
    case g.工序 when N'搅拌' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('A1','A2','C2','C3'))
    when N'热压' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('C4','C5','D1','D2','D3','D4','D6','M'))
    when N'内外磨' then (select sum(f.废品*f.单重) from 废次品 f where f.废次品代码 in('F','G1','G2','H'))
    end as [废次品(KG)]
    from gxu g