Факторинг подзапроса: Inner Join друг с другом

У меня есть четыре предложения СО. Я хотел знать, возможно ли использовать среди них внутренние объединения.

Я искал в сети, и я не мог найти ничего, связанного с этим.

Версия Oracle: 11 г

** РЕДАКТИРОВАТЬ **

WITH
    GETDATABYDAY AS
    (
        select column1, column2
        from table1 
        where sales > 2000
     )
    SELECT
      column1,
      column2
    FROM
      GETDATABYDAY;

WITH
    GETDATABYDAY1 AS
    (
        select column3, column2
        from table1 
        where date between 'date1' and 'date2'
    )
    SELECT
        column3,
        column2
    FROM
        GETDATABYDAY1;

Assume that there are two more WITH named: GETDATABYDAY2 and GETDATABYDAY3

Можно ли использовать внутреннее объединение для всех GETDATABYDAY, GETDATABYDAY1, GETDATABYDAY2 и GETDATABYDAY3?

2 ответа

Примерно так будет работать:

with first_cte as ( 
    select ...
    from ...
), second_cte as (
    select ...
    from first_cte
      join some_table on ...
), third_cte as (
    select ...
    from ...
) fourth_cte as (
    select ...
    from some_other_table
      join second_cte on ...
) 
select ..
from fourth_cte
   join third_cte on ....

Я не думаю, что это может работать, так как каждый with clause является частью совершенно другого запроса.

Вы можете создать db views хотя и используйте их вместо предложения with.

Другие вопросы по тегам