Oracle SQL: написание сложных запросов SQL - PullRequest
0 голосов
/ 08 октября 2019

Я создаю гигантский запрос SQL:

Select * from (With tab1 AS ( Select * from abc)
,tab2 AS (select * from cde)
,tab3 AS (select * from tab2)
.
.
.
,tabz AS (select a, b from xyz
          UNION
          select a, b from cde)

Select tab1.*, tab3.* from 
tab1
LEFT OUTER JOIN tab2 ON tab1.a = tab2.b
...
LEFT OUTER JOIN tabz on tab1.a = tabz.a) A

Теперь, используя приведенную выше таблицу в качестве 1, мне нужно создать еще один длинный SQL для вычисления процентов и прочего с другими таблицами таблиц.

Скажем выше, таблица A, затем выберите bbb.a, bbb.b из bbb. ПРИСОЕДИНЯЙТЕСЬ К ON bbb.a = Aa, а затем назовите его как B

И, наконец, присоединитесь к LEFT OUTER JOIN B.

Это массивный запрос, и я знаю, что у нас не может быть оператора Nested WITH. У кого-нибудь есть простой способ сделать это? ИЛИ какое-нибудь предложение? Мне нужно только выполнить это с помощью SQL-запросов оракула. ​​

1 Ответ

0 голосов
/ 08 октября 2019

Я думаю, вы можете перефразировать ваш запрос как:

WITH
 tab1 AS (select * from abc)
,tab2 AS (select * from cde)
,tab3 AS (select * from tab2)
.
.
.
,tabz AS (select a, b from xyz
          UNION
          select a, b from cde)
,a as (
  Select tab1.*, tab3.* from tab1
  LEFT OUTER JOIN tab2 ON tab1.a = tab2.b
  ...
  LEFT OUTER JOIN tabz on tab1.a = tabz.a
)
select * from a;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...