Это может быть простой, но мне нужно применить логику в другом:Oracle проходит внешнее значение запроса для внутреннего запроса
WITH t(col) AS (
SELECT 1 FROM dual
UNION SELECT 2 FROM dual
UNION SELECT 3 FROM dual
UNION SELECT 4 FROM dual
UNION SELECT 5 FROM dual
)
SELECT col , --- will works as usual
(SELECT col FROM t WHERE col = outer_q.col) new_col, --working as well
(
SELECT sum (latest_col)
from
(
SELECT col latest_col FROM t WHERE col = outer_q.col
UNION ALL
SELECT col FROM t WHERE col = outer_q.col
)
)newest_col -- need to get an output "4"
from t outer_q where col = 2;
простой выход, как:
COL NEW_COL NEWEST_COL
---------- ---------- ----------
2 2 4
Мне просто нужно использовать наружное самое значение, внутренний я использовал для третьей колонки
РЕДАКТИРОВАНИЯ - образца с более данными:
WITH
t(col) AS
(SELECT 1 FROM dual
UNION
SELECT 2 FROM dual
UNION
SELECT 3 FROM dual
UNION
SELECT 4 FROM dual
UNION
SELECT 5 FROM dual
),
t1(amount, col) AS
(SELECT 100 , 2 FROM dual
UNION
SELECT 200, 3 FROM dual
)
SELECT col,
(SELECT col FROM t WHERE col = outer_q.col
) new_col,
(SELECT SUM(x)
FROM
(SELECT col x FROM t
UNION ALL
SELECT amount x FROM t1
)
WHERE col = outer_q.col
) newest_col -- gives 315 as it takes whole `SUM`
FROM t outer_q
WHERE col = 2;
Выход ожидается, как:
COL NEW_COL NEWEST_COL
---------- ---------- ----------
2 2 102
Заранее спасибо за любую помощь.
: Кажется, странно, я не могу понять, почему вы делают союз во внутренней части, и вы знаете, что сумма 2 и 2 равна 4, не понимают дела за этим :( –
ха-ха. не смотрите эту сумму или образец таблицы, но посмотрите на заголовок , Мне просто нужно передать только внешнее значение запроса во внутреннее. Надеюсь, его ясно. – ajmalmhd04
Обновлен вопрос. – ajmalmhd04