Объединение 2 запросов ORACLE в 1 запрос

0

Итак, у меня есть 2 запроса, один из которых является подзапросом, используя значения из первого запроса. Мне нужно сделать это в 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 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;

во втором запросе используются значения: STARTDATE и ENDDATE из первого запроса START_WEEK_DATE и END_WEEK_DATE в качестве значения диапазона из определенного диапазона дат в первом запросе.

поэтому весь метод в php можно увидеть на http://pastie.org/9938791, но его невозможно объединить и присвоить значение внутри JSON. Пожалуйста, помогите мне в объединении этих двух запросов. Я очень ценю это

  • 1
    Разве вы не можете просто просмотреть первый запрос? Или использовать конструкцию WITH?
  • 0
    Я попробовал вид, но проблема в JOBNAME ...
Показать ещё 1 комментарий
Теги:

1 ответ

1
Лучший ответ

Вы можете использовать первый запрос в качестве подзапроса с помощью WITH-clause:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню