我有一个嵌套子查询,我似乎无法弄清楚。这里是问题:在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 –