我正在编写一个SQL Query,它返回最常用的产品名称。
当我运行它时,我得到单行子查询返回多行错误,我现在知道如何修复它。
这是我的疑问。
CREATE OR REPLACE VIEW mostUsed AS
SELECT a.article_name, SUM(p.quantity) AS numberOfItems
FROM ARTICLE a, ITEM p
WHERE p.fk_id_article = a.id_article
GROUP BY a.article_name
HAVING SUM(p.quantity) >= (SELECT MAX(p.quantity) FROM ITEM);
SELECT ARTICLE_NAME, numberOfItems
FROM mostUsed
WHERE numberOfItems = (SELECT MAX(numberOfItems) FROM mostUsed);
任何有关修复它的帮助表示赞赏。谢谢!
答案 0 :(得分:2)
问题是outerquery
列可以在subquery
内引用。
(SELECT MAX(p.quantity) FROM ITEM)
由于您使用的p.quantity
值来自ITEM p
中的外表Item
而不是subquery
表,因此外Item
表按{分组{1}}所以它返回了多行。
所以从a.article_name
删除别名P
,您的问题将得到修复
subquery