您的位置:首页 > 数据库

SqlServer_Case_When用法

2012-05-14 08:57 369 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: