当前位置: 代码迷 >> Oracle开发 >> oracle语句出现有关问题
  详细解决方案

oracle语句出现有关问题

热度:196   发布时间:2016-04-24 06:35:33.0
oracle语句出现问题。
 SELECT a.QUALITY_NAME,NVL(a.CN,0)/(SELECT SUM(NVL(a.LQ,0)-NVL(a.HO,0)) SUM_CN FROM a)
FROM     
 (select tb1.QUALITY_NAME,
     count(*)  as cn,    
    sum(decode(rn,1,tb1.ingot_nr,0)) as LQ,
    sum(tb1.QN) as HO    
    from(
    select saw_pos_nr , 
           job_nr,INGOT_NR,
           row_number() over(PARTITION by saw_pos_nr,job_nr order by 1) rn ,
           decode(QUALITY_NAME,'HO',1,0) as QN,
           QUALITY_NAME
       from mv_seh_wafer 
       where time > sysdate -0.5) tb1
       GROUP by tb1.QUALITY_NAME) a

括号内的都是正确的,但是加上括号外的检索就会有问题,提示找不到表a,求解。
或者有什么可以变通的地方
------解决思路----------------------
试一下,未测试
with a as   (select tb1.QUALITY_NAME,
     count(*)  as cn,    
    sum(decode(rn,1,tb1.ingot_nr,0)) as LQ,
    sum(tb1.QN) as HO    
    from(
    select saw_pos_nr , 
           job_nr,INGOT_NR,
           row_number() over(PARTITION by saw_pos_nr,job_nr order by 1) rn ,
           decode(QUALITY_NAME,'HO',1,0) as QN,
           QUALITY_NAME
       from mv_seh_wafer 
       where time > sysdate -0.5) tb1
       GROUP by tb1.QUALITY_NAME)
 SELECT a.QUALITY_NAME,NVL(a.CN,0)/SUM(NVL(a.LQ,0)-NVL(a.HO,0)) OVER() FROM A
  相关解决方案