单行子查询returns多行-SQL查询
Single-row subquery returns more than one row - SQL Query
我正在写一个 SQL 查询 returns 最常用的产品名称。
当我 运行 它时,我得到 单行子查询 returns 多行 错误,我现在知道如何修复它.
这是我的查询。
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);
感谢任何有关修复它的帮助。谢谢!
问题是 outerquery
列可以在 subquery
中引用。
(SELECT MAX(p.quantity) FROM ITEM)
由于您使用 p.quantity
值是从外部 table ITEM p
中获取的,而不是 subquery
中的 Item
table 和外部Item
table 按 a.article_name
分组,因此它返回了不止一行。
所以从 subquery
中删除别名 P
您的问题将得到解决
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(quantity) FROM ITEM)
我正在写一个 SQL 查询 returns 最常用的产品名称。
当我 运行 它时,我得到 单行子查询 returns 多行 错误,我现在知道如何修复它.
这是我的查询。
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);
感谢任何有关修复它的帮助。谢谢!
问题是 outerquery
列可以在 subquery
中引用。
(SELECT MAX(p.quantity) FROM ITEM)
由于您使用 p.quantity
值是从外部 table ITEM p
中获取的,而不是 subquery
中的 Item
table 和外部Item
table 按 a.article_name
分组,因此它返回了不止一行。
所以从 subquery
中删除别名 P
您的问题将得到解决
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(quantity) FROM ITEM)