将2个ORACLE查询合并为1个查询


Combining 2 ORACLE Queries into 1 query

所以我有两个查询,其中一个是使用第一个查询的值的子查询。我需要把它变成一个查询,这样我就可以把它们作为一个视图。所以第一个查询是,

    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 DTL_ERC_UPD@WELTES_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;

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

因此php中的整个方法可以在http://pastie.org/9938791但不可能将它们放在一起并在JSON中分配值。请帮我把这两个问题结合起来。。我真的很感激

您可以使用WITH子句将第一个查询用作子查询:

http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10002.htm

WITH JOBNAME AS (1stQuery)
SELECT-CLAUSE USING JOBNAME as Inlineview (in the FROM-Condition).

例如。http://oracle-base.com/articles/misc/with-clause.php