日期:2014-05-18  浏览次数:20496 次

高手请进,如何得到这张临时表或者视图???
表A   (现在假设A表有很多编码,而我需要得到的结果只要求是临时表里的结果,用视图也可以)
  费用编码 费用名称
   FZ    房租
   SDF   水电费
   DHF   电话费
            QT               其它
表B 
  单据号码   日期
   001      2005-1-1
   002      2006-2-1
表C
  单据号码  费用编码  金额
            001                     FZ   100
            001                   SDF   200
            002                   DHF                 50
            002                   SDF   100
            002                   FZ   500
            002                   QT                 100


需要得到的临时表内容

    日期     房租    水电费   电话费
   2005-1-1   100 200  0
   2006-2-1   500 100        50




------解决方案--------------------
select b.日期,
sum(case a.费用名称 when 房租 then 金额 end) as 房租,
sum(case a.费用名称 when 水电费 then 金额 end) as 水电费,
sum(case a.费用名称 when 电话费 then 金额 end) as 电话费
from c inner join a on c.费用编码 = a.费用编码
inner join b on c.单据号码 = b.单据号码
group by b.日期