Witam
Ostatnio zacząłem bawić się w SQLu Oraclowym i mam problem z pewnym podzapytaniem. Może na początek opiszę co ma być wynikiem tego zapytania i jak wg mnie miałoby ono działać. Dla każdego up."c_PPE_ID" znajdującego się w tabeli up ma przypisać ostatni (najnowszy) rekord z tabeli wr_c. W tabeli wr_c kolumna "c_PPE_ID" nie jest kluczem głównym tej tabeli i posiada zduplikowane wartości, stąd najpierw filtruje wg określonego PPE_ID, później sortuje wg klucza a później wybiera ostatni rekord. Alternatywnie mogłoby to działać na zasadzie posortuj wg "c_Wr_ID" następnie usuń duplikaty po PPE_ID i wtedy by przypisywało wartość. Niestety nie wiem czy coś takiego można zrobić. Wracając do mojego zapytania, to jeżeli wklepie taki kod jak poniżej do SQL Developera to wyświetla mi się komunikat: "ORA-00904: "UP"."c_PPE_ID": niepoprawny identyfikator". Jeżeli w poniższym zapytanie zamiast up."c_PPE_ID" wpiszę konkretną wartość to działa normalnie i wyświetla prawidłową wartość. Ktoś ma jakieś pomysły dlaczego poniższe zapytanie nie działa i co zmienić aby zadziałało? Z góry dzięki za wszelkie sugestie.
select
up."c_PPE_ID",
(
SELECT *
FROM (
SELECT wr_c."c_Wr_EnDeklRok"
FROM BILLING."MT_c_Wr" wr_c
WHERE wr_c."c_PPE_ID" = up."c_PPE_ID"
ORDER BY wr_c."c_Wr_ID" DESC
)
WHERE ROWNUM <=1
)
as "wol"
from BILLING."MT_TarUklPom" tup
inner join BILLING."MT_UklPom" up on up."UklPom_ID" = tup."UklPom_ID"