我試圖從子選擇中的另一個表中選擇最新的價格。但我無法弄清楚如何讓它工作。在Oracle中的子選擇
這是我已經試過:
select something, somthingelse,
(
select * from
(
select QUOTE_PRICE as old_price
from price_history
where price_history.part_no= article_table.part_no
order by valid_from desc
) where rownum=1
)
from article_table where rownum < 5
子選擇的作品本身,但它無法找到article_table.part_no
:
SQL Error: ORA-00904: "article_table "."part_no": invalid identifier
更新:
當前的解決方案:
select something, somethingelse, (
SELECT MIN(QUOTE_PRICE) KEEP (DENSE_RANK FIRST ORDER BY valid_from)
FROM price_history
WHERE part_no=article_table.part_no
) as old_price
from article_table a where rownum < 5
不會工作。我不想只選擇一行。我想獲得article_table中所有行的前一個價格。或者,也許我誤解了你的建議? – jgauffin 2011-04-21 08:21:17
@jgauffin:運行查詢:) - 查詢將每個'article_table'行返回一行。 – 2011-04-21 08:21:51
是的。謝謝。 +1。您如何看待我添加到我的問題中的解決方案? – jgauffin 2011-04-21 08:29:43