当前位置: 代码迷 >> Sql Server >> sql 有优化或简写吗,该如何解决
  详细解决方案

sql 有优化或简写吗,该如何解决

热度:18   发布时间:2016-04-24 18:29:14.0
sql 有优化或简写吗
--计算本年的个数量,金额
select a.wlcode,a.sumqty1-b.sumqty2

select wlcode,oyear
,sum(qty1)sumqty1,sum(qty2)sumqty2
,sum(money1)summoney1,sum(money2) as summoney2 from table1
where oyear ='2013'
group by wlcode,oyear
)a inner join
(
--因为一个条件不同,我就的写两次
select wlcode,oyear
,sum(qty1)sumqty1,sum(qty2)sumqty2
,sum(money1)summoney1,sum(money2) as summoney2 from table1
where oyear ='2012'
group by wlcode,oyear
)b a.wlcode = b.wlcode

------解决方案--------------------
也可以做简化。


select a.wlcode,a.sumqty1-b.sumqty2
可以这样:
SELECT  wlcode ,
        SUM(CASE WHEN oyear='2013' THEN qty1 ELSE 0 END ) - SUM(CASE WHEN oyear='2012' THEN qty2 ELSE 0 END )
FROM    table1
WHERE   oyear IN ( '2013', '2012' )
GROUP BY wlcode
  相关解决方案