我有一張保留產品成本的表。我想獲得平均成本和上次購買每個產品的發票。選擇的Oracle子查詢
我的解決辦法創造一個子選擇來獲得最後的購買發票但不幸的是我得到
ORA-00904: "B"."CODPROD": invalid identifier
我的查詢是
SELECT (b.cod_aux) product,
-- here goes code to get average cost,
(SELECT round(valorultent, 2)
FROM (SELECT valorultent
FROM pchistest
WHERE codprod = b.codprod
ORDER BY dtultent DESC)
WHERE ROWNUM = 1)
FROM pchistest a, pcembalagem b
WHERE a.codprod = b.codprod
GROUP BY a.codprod, b.cod_aux
ORDER BY b.cod_aux
總之我做的什麼子選擇正在下訂單並獲得產品的第一行b.codprod
編輯您的問題,並提供樣本數據和期望的結果。目前還不清楚你想要做什麼。例如,哪列代表「價格」,「最後購買發票」是什麼意思?什麼專欄標識產品? –
在版本12c之前的版本中,相關的子查詢只能引用父級查詢的一列。 「codprod = b.codprod」跨越兩個等級,因此是錯誤。 –
ROWNUM在子查詢中不以這種方式工作。它適用於整個查詢。您需要在外部查詢中使用ROW_NUMBER()OVER(PARTITION BY c.valorultent ORDER BY c.dtultent DESC)AS row_no和WHERE row_no = 1。 – Doug