欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

第三列等于前两列的计算结果,但前两列也是子查询如何做

更新时间: 2014-01-05 02:12:26 责任编辑: Author_N1

 

第三列等于前两列的计算结果,但前两列也是子查询怎么做
比如
SELECT 
   
                (SELECT SUM(SFO.QTY) --预算数
                   FROM SN_FACT_ORDER_COST SFO, SN_DIM_PART SDPI
                  WHERE SFO.CHANGE_TYPE = 'TYPE_DD' --订单,采购) 2012年申请

                    
                (SELECT SUM(SFO.QTY) --预算数
                   FROM SN_FACT_ORDER_COST SFO, SN_DIM_PART SDPI
                  WHERE SFO.CHANGE_TYPE = 'TYPE_FF' --发放)2012年发放
           FROM FACT_ORDER

怎么再加第三列,使得第三列等于第一列除以第二列的比例值?
烦劳各位
--参考方法--
看你的语句不需要那么多子查询啊
select qty1,qty2,qty1/qty2 from(select 
sum(case when SFO.CHANGE_TYPE='TYPE_DD' then  SFO.QTY END ) as qty1,
sum(case when SFO.CHANGE_TYPE ='TYPE_FF' then  SFO.QTY END ) as qty2
from SN_FACT_ORDER_COST SFO)

--参考方法--
如果不想要子查询 就直接写出来好了


select sum(decode(SFO.CHANGE_TYPE,'TYPE_DD',SFO.QTY,0)) "采购"
       sum(decode(SFO.CHANGE_TYPE,'TYPE_FF',SFO.QTY,0)) "发放"
  round((sum(decode(SFO.CHANGE_TYPE,'TYPE_DD',SFO.QTY,0))/
      sum(decode(SFO.CHANGE_TYPE,'TYPE_FF',SFO.QTY,0)),2) "比例"
FROM SN_FACT_ORDER_COST SFO, SN_DIM_PART SDPI

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:12:26
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6938/
本文WWW.DOC100.NET DOC100.NET版权所有。