sql-server 当使用COUNT和GROUP BY时,无法从其他表中选择列

yhxst69z  于 2022-10-31  发布在  其他
关注(0)|答案(1)|浏览(167)

我在SQL Server数据库中有两个表-IT_OrderProduct。我想根据IT_Order中的product_id进行分组,但也要从Product中选择产品名称。但我在执行此查询时遇到错误。请帮助...
表:

查询:

SELECT  
    Product.product_name, IT_Order.product_id, 
    COUNT(IT_Order.it_order_id) AS Product_volume 
FROM 
    IT_Order, Product
WHERE 
    IT_Order.product_id = Product.product_id
GROUP BY 
    IT_Order.product_id;

我得到这个错误:
数据行'Product.product_name'在选取清单中无效,因为它未包含在汇总函数或GROUP BY子句中。

ilmyapht

ilmyapht1#

错误信息很清楚,您可以在GROUP BY中使用没有聚合的列,但由于每个产品只有一个名称(我猜),您可以使

SELECT  Product.product_name, IT_Order.product_id, COUNT(IT_Order.it_order_id) as 
Product_volume 
FROM IT_Order JOIN Product
ON IT_Order.product_id = Product.product_id
GROUP BY IT_Order.product_id,Product.product_name;

另外,请在将来对您表使用JOIN,因为它们已经存在了30年。

相关问题