有3个表
-itemID
2.INVENTORY
-quantity
3.CHARACTERS
-charID
项目1 ---许多存货8 ---- 1字符
我想找到堆放在角色库存中的前10个堆叠最多的项目。所以最后它会像itemID 1有4个堆栈,而itemID 2有3个堆栈。在一张桌子里。
这是我目前在尝试这样做一段时间后所处的位置
SELECT TOP 10 COUNT(INVENTORY.itemID) as Stacks, ITEM.itemID
FROM INVENTORY
JOIN ITEM
ON INVENTORY.itemID = ITEM.itemID
WHERE INVENTORY.quantity>1
我收到了一个汇总错误,我不知道如何修复此查询
Column 'ITEM.itemID' is invalid in the select list because it is not
contained in either an aggregate function or the GROUP BY clause.
欢迎任何帮助谢谢:)
答案 0 :(得分:1)
您需要GROUP BY
来计算每个itemID。
SELECT TOP 10 COUNT(INVENTORY.itemID) as Stacks, ITEM.itemID
FROM INVENTORY
JOIN ITEM
ON INVENTORY.itemID = ITEM.itemID
WHERE INVENTORY.quantity>1
GROUP BY ITEM.itemID
由于您TOP 10
,我还建议在最后添加ORDER BY
:
ORDER BY Stacks desc