Привет, у меня возникла странная проблема при выборе имени таблицы (QUERY3) внутри предложения WITH с использованием оракула ... показано ниже (я сократил
пример, но сохранил тот же синтаксис).
WITH QUERY0 AS (
SELECT...
FROM ...
WHERE...
AND...
),
QUERY1 AS
SELECT...
FROM...
WHERE...
AND...
),
QUERY2 AS (
SELECT...
FROM...
WHERE...
AND...
),
QUERY3 AS (
SELECT...
FROM...(so this is the main query and selects from QUERY1 and QUERY2
WHERE...
AND...
)
SELECT P.*
FROM ANOTHER_TABLE AN, QUERY3 P
WHERE (P.PRODUCT_NAME LIKE 'IA%' OR P.PRODUCT_NAME LIKE 'ERSK%')
AND ((P.DT IS NULL) OR (P.DT >= AN.DT))
AND P.PROP_ID = 123456
--this works, returns the expected row starting with prop_id 123456, all good until I remove this AND.
ПРОБЛЕМА - Оператор Select, расположенный непосредственно выше, возвращает строку prop_id 1234546, только когда AND 'P.PROP_ID = 123456'
введено, если пропущено, строка не возвращается в результатах!
, например
SELECT P.*
FROM ANOTHER_TABLE AN, QUERY3 P
WHERE (P.PRODUCT_NAME LIKE 'IA%' OR P.PRODUCT_NAME LIKE 'ERSK%')
AND ((P.DT IS NULL) OR (P.DT >= AN.DT))
Это не возвращает строку 123456 ... но, безусловно, если она находится в результатах QUERY3, она должна отображаться, добавляю ли я
AND P.PROP_ID = 123456 ... или нет?!?
Очевидно, что я, должно быть, что-то неправильно понимаю, если кто-то может помочь, это будет с благодарностью !!
Приветствия
JT