Мне нужна помощь с моим SQL-запросом. У меня есть две таблицы, к которым мне нужно присоединиться, используя ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ, затем мне нужно создать представление базы данных для этого конкретного представления. Если я запускаю запрос на соединение для поиска имени A, мне нужно получить последний бренд «AP» этого A. Таблица 1
ID name address
-----------------------
1 A ATL
2 B ATL
ТАБЛИЦА 2
ID PER_ID brand DATEE
--------------------------------------------
1 1 MS 5/19/17:1:00pm
2 1 XB 5/19/17:1:05pm
3 1 AP 5/19/17:2:00pm
4 2 RO 5/19/17:3:00pm
5 2 WE 5/19/17:4:00pm
Я попробовал запрос a, который возвращает правильный результат, но у меня возникает проблема 1, когда я пытаюсь построить представление базы данных поверх соединения. Я пробовал запрос b, но когда я запрашиваю свое представление в разработчике oracle sql, я все равно получаю все результаты, но не последние.
запрос а:
SELECT * from table_1
left outer join table_2 on table_1.ID = Table_2.PER_ID
AND table_2.DATE = (SELECT MAX(DATE) from table_2 z where z.PER_ID = table_2.PER_ID)
Проблема 1
Error report -
ORA-01799: a column may not be outer-joined to a subquery
01799. 00000 - "a column may not be outer-joined to a subquery"
*Cause: <expression>(+) <relop> (<subquery>) is not allowed.
*Action: Either remove the (+) or make a view out of the subquery.
In V6 and before, the (+) was just ignored in this case.
Запрос 2:
SELECT * from table_1
left outer join(SELECT PER_ID,brand, max(DATEE) from table_2 group by brand,PER_ID) t2 on table_1.ID = t2.PER_ID