我有一個嵌套子查詢,我似乎無法弄清楚。這裏是問題:在Oracle中嵌套子查詢
「使用BOOK_AUTHOR和AUTHOR表作爲最上面的查詢,創建一個子查詢,它將返回BOOKID,以及寫作該書的作者的姓氏和名字(爲了成功完成這項工作,您需要首先找出ORDER_ITEMS表中一本書(基於bookid)售出的書的最大總數(基於數量),這將是在最底層的查詢中完成,這個查詢的返回值將用於比較ORDER_ITEMS表中發生的中間查詢次數相等的BOOKID,這個查詢的返回值將被用於比較BOOKID (提示:小心,您的解決方案需要GROUP BY和HAVING子句)。「
這裏是我到目前爲止聲明:
SELECT ba.bookid, a.firstname, a.lastname
FROM book_author ba, author a
WHERE bookid =
(SELECT bookid, quantity
FROM order_items
WHERE quantity IN
(SELECT bookid, SUM(quantity)
FROM order_items
GROUP BY bookid);
底部的查詢是正確的,據我可以告訴。它會返回一個書籤ID列表,其中包含爲每個ID銷售的總份數。
現在假設我正確地閱讀了這個問題,中間查詢應該從底部查詢返回的列表中抽取書籍ID,該列表銷售的拷貝數最多。這是我卡住的地方。我知道我上面寫的中間查詢不起作用。當我嘗試一起測試中間和底部查詢時,我得到一個ORA-913錯誤(太多的值)。
任何人都可以提供任何洞察到我失蹤?
謝謝。
更改'WHERE bookid ='到'WHERE bookid in'並從子查詢中刪除bookid –