Я пытаюсь создать материализованное представление в Oracle (кстати, я новичок).По какой-то причине ему не нравится присутствие в нем подзапроса.Вместо этого я пытался использовать LEFT OUTER JOIN, но теперь он возвращает другой набор данных.
Проще говоря, вот код, который я пытаюсь изменить:
SELECT *
FROM table1 ros, table2 bal, table3 flx
WHERE flx.name = 'XXX'
AND flx.value = bal.value
AND NVL (ros.ret, 'D') = Nvl (flx.attr16, 'D')
AND ros.value = bal.segment3
AND ros.type IN ( 'AL', 'AS', 'PL' )
AND bal.period = 13
AND bal.code NOT IN (SELECT bal1.code
FROM table2 bal1
WHERE bal1.value = flx.value
AND bal1.segment3 = ros.value
AND bal1.flag = bal.flag
AND bal1.period = 12
AND bal1.year = bal.year)
И вот одна из моих попыток:
SELECT *
FROM table1 ros, table2 bal, table3 flx
LEFT OUTER JOIN table2 bal1
ON bal.code = bal1.code
WHERE bal1.code is null
AND bal1.segment3 = ros.value
AND bal.segment3 = ros.value
AND bal1.flag = bal.flag
AND bal1.year = bal.year
AND flx.name = 'XXX'
AND flx.value = bal.value
AND bal1.value = flx.value
AND bal1.period_num = 12
AND NVL (ros.type, 'D') = NVL (flx.attr16, 'D')
AND ros.value = bal.segment3
AND ros.type IN ( 'AL', 'AS', 'PL' )
AND bal.period = 13;
Это сводит меня с ума!Заранее спасибо за помощь:)