SqlServer_Case_When用法
http://wenku.baidu.com/view/f9aeaa03bed5b9f3f90f1cb2.html
eg.
select lb1, yuanpianmj,qiegemj,yuanpiansl,qiegesl,qiegemj/yuanpianmj*100 as cql,qiegesl/yuanpiansl as onetox from (select lb1, sum(case when swdm='um' and kw2bh='tp001' and kw1bh='fy00t' then mj else 0 end) as 'yuanpianmj', sum(case when swdm='um' and kw2bh='' and substring(kw1bh,1,2)='ta' then mj else 0 end) + sum(case when swdm='tk' and kw2bh='' and kw1bh='typ01' then mj else 0 end) + sum(case when swdm='um' and kw2bh='' and kw1bh='ap001' then mj else 0 end) as 'qiegemj', sum(case when swdm='um' and kw2bh='tp001' and kw1bh='fy00t' then sl else 0 end) as 'yuanpiansl', sum(case when swdm='um' and kw2bh='' and substring(kw1bh,1,2)='ta' then sl else 0 end)+ sum(case when swdm='tk' and kw2bh='' and kw1bh='typ01' then sl else 0 end) + sum(case when swdm='um' and kw2bh='' and kw1bh='ap001' then sl else 0 end) as 'qiegesl' from (select lb1,ck1bh ,ck2bh,kw1bh ,kw2bh,swdm,--substring(xmbh,3,4) as k,substring(xmbh,7,4) as c, cast(substring(xmbh,3,4) as float)*cast(substring(xmbh,7,4) as float)/1000000*sl as mj,sl from (select swdm,lb1,ck1bh,ck2bh,kw1bh,kw2bh,xmbh,sl from insw where rq between '2012-7-1 00:00:00' and '2012-7-18 23:59:59' and lb1='071801') as a) as b group by lb1) as c