2015-02-11 141 views
0

因此,我有2个查询,其中之一是使用第一个查询中的值的子查询。我需要将它作为1个查询,以便我可以将它们作为视图。因此,第一个查询是,将2个ORACLE查询合并为1个查询

SELECT LEVEL WEEK_NUM_INCR, 
      TO_CHAR (start_date + (LEVEL - 1) * 7, 'DD-MON-YYYY') START_WEEK_DATE, 
      TO_CHAR (start_date + (LEVEL) * 7, 'DD-MON-YYYY') END_WEEK_DATE 
     FROM (SELECT PS.PROJECT_START_DT start_date, 
        PS.JOB_NAME JOB_NAME, 
        PS.PROJECT_END_DT end_date 
       FROM PROJECT_SPAN PS 
      WHERE PS.JOB_NAME = :JOBNAME) RS 
CONNECT BY start_date + (LEVEL - 1) * 7 < end_date; 

和第二查询是,

SELECT SUM (DO.ONSITE_UPD_QTY) ONSITESUM, 
     SUM (DO.ONSITE_UPD_QTY * MD.WEIGHT) TOTALONSITEWEIGHT, 
    FROM PROJECT P 
     LEFT OUTER JOIN [email protected]_SITEMON_LINK DO 
      ON DO.PROJECT_NAME = P.PROJECT_NAME 
     LEFT OUTER JOIN MASTER_DRAWING MD ON MD.HEAD_MARK = DO.HEAD_MARK 
    WHERE  DO.UPD_DATE BETWEEN TO_DATE (:STARTDATE, 'DD-MON-YYYY') 
          AND TO_DATE (:ENDDATE, 'DD-MON-YYYY') 
     AND P.PROJECT_NO = :PROJNO 
GROUP BY P.PROJECT_NO; 

第二查询中使用的值:STARTDATE和:ENDDATE从所述第一查询START_WEEK_DATE和END_WEEK_DATE作为从特定的范围值第一个查询中的日期范围。

所以在php中的整个方法可以在http://pastie.org/9938791 中看到,但它不可能把它们放在一起,并在JSON内部赋值。请帮我组合这些2个查询..我真的很感激

+1

难道你不能只查看第一个查询吗?或者使用WITH结构? – jarlh 2015-02-11 09:15:23

+0

我试过了这个视图,但是问题出现在JOBNAME中... – 2015-02-11 09:24:08

+0

本周的范围一直在递归循环中运行 – 2015-02-11 09:24:31

回答