LEFT JOIN 2表使用SUM&通过...分组

时间:2013-04-12 13:51:05

标签: c# sql

以下是我的表格:

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&总和。

我试过了:

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子句中。

我该怎么办?

3 个答案:

答案 0 :(得分:0)

添加

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

它会起作用。

如果您有sumcount等,则需要在查询结尾添加GROUP BY

答案 1 :(得分: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

答案 2 :(得分:0)

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