比如
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
怎么再加第三列,使得第三列等于第一列除以第二列的比例值?
烦劳各位oracle计算

解决方案 »

  1.   

    with as tt(
    查询语句
    )
    selec col1,col2,col1/col2 col2 from tt;
      

  2.   

    呃,不能在外面再包一层select XXXXX from 么
      

  3.   

    看你的语句不需要那么多子查询啊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)
      

  4.   

    如果不想要子查询 就直接写出来好了
    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