我收到了这个声明
SELECT ITEM.ITEMID, ITEMNAME, QUANTITY AS "QUANTITY SOLD"
FROM ORDERITEM,
NBUSER."ORDER",
PAYMENT,
ITEM
WHERE NBUSER."ORDER".PAYMENTID = PAYMENT.PAYMENTID
AND ITEM.ITEMID = ORDERITEM.ITEMID
AND PAYMENT.PAYMENTDATE BETWEEN '4/1/2017' AND '4/30/2017'
GROUP BY ITEM.ITEMID
ORDER BY ITEM.ITEMID DESC;
但它一直给我这个错误:
[例外,错误代码30,000,SQLState 42Y36]列引用 ' ITEM.ITEMNAME'无效,或者是无效表达式的一部分。对于 带有GROUP BY的SELECT列表,列和表达式为 selected可能只包含有效的分组表达式并且有效 聚合表达式。第1行第1列
我想将类似itemid的记录加在一起,并为所有相同的itemid添加数量。
答案 0 :(得分:2)
首先,语句中有4个表,但只有2个表。 你有意这样做吗?如果没有,您需要再指定一个加入。
当您仅对select中的列的一部分使用group by时,对于您的情况,您必须具有select子句中剩余列的聚合函数,例如:
select ITEM.ITEMID, max(ITEMNAME), sum(QUANTITY) AS "QUANTITY SOLD" ...
ITEM.ITEMID
(ITEM
是别名),但不存在 - ITEMNAME
。