select 序号,餐费=sum(case when 费用名称='午餐费' or 
          费用名称='晚餐费' then 金额 else 0 end ),
       加班值班费=sum(case when 费用名称='值班费' or 
          费用名称='加班费' then 金额 else 0 end ),
       小计=sum(费用名称<>'补助费' and 
         费用名称<>'津贴费' then 金额 else 0 end ),
      补助津贴=sum(费用名称='补助费' or
         费用名称='津贴费' then 金额 else 0 end ),
      合计=sum(金额)
from tblA
group by 序号

解决方案 »

  1.   

    select 
        序号,
        餐费       = sum(case when 费用名称 in('午餐费','晚餐费') then 金额 else 0 end),
        加班值班费 = sum(case when 费用名称 in('加班费','值班费') then 金额 else 0 end),
        小计       = sum(case when 费用名称 in('午餐费','晚餐费','加班费','值班费') then 金额 else 0 end),
        补助津贴   = sum(case when 费用名称 in('补助费','津贴费') then 金额 else 0 end),
        合计       = sum(金额)
    from
        表a
    group by
        序号