单行子查询返回多行 - SQL查询

时间:2015-01-11 10:47:59

标签: sql select

我正在编写一个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);

任何有关修复它的帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:2)

问题是outerquery列可以在subquery内引用。

(SELECT MAX(p.quantity) FROM ITEM)

由于您使用的p.quantity值来自ITEM p中的外表Item而不是subquery表,因此外Item表按{分组{1}}所以它返回了多行。

所以从a.article_name删除别名P,您的问题将得到修复

subquery