-1

这是我的表:

Table: Catalog                  Table: Inventory
--------------                  ----------------
catalogId      - int [PK]       inventoryId        - int [PK]  
itemName      - nvarchar        inventoryTimeStamp - datetime
itemType      - bit             quantity           - float
catalogNumber - int             catId              - int [FK]

我的问题是:我如何加入表格(左加入它们)并总结库存表中物品的数量,所以我可以打印:itemName、catalogNumber 和 sum。

我试过这个:

SELECT Catalog.itemName, Inventory.catId, SUM(Inventory.quantity) AS Sum
FROM Catalog
LEFT JOIN Inventory ON Inventory.catId = Catalog.catalogId
GROUP BY Inventory.catId

但我得到一个例外:

列“Catalog.itemName”在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。

我应该怎么办?

4

3 回答 3

0

只需添加

GROUP BY Catalog.itemName, Inventory.catId, Inventory.quantity

它会起作用。

当您有sumcount时,您需要GROUP BY在查询末尾添加

于 2013-04-12T13:53:01.983 回答
0

您只需要将所有非聚合列添加到GROUP BY子句中,

SELECT Catalog.itemName, 
       Inventory.catId, 
       SUM(Inventory.quantity) AS Sum 
FROM   Catalog 
       LEFT JOIN Inventory 
           ON Inventory.catId = Catalog.catalogId 
GROUP  BY Catalog.itemName, Inventory.catId
于 2013-04-12T13:53:12.040 回答
0

您将需要Catalog.itemName从您的条款中删除SELECT或将其包含在您的Group By条款中。

于 2013-04-12T13:53:33.777 回答