如何在不包含GROUP BY子句的情况下按单个项目进行分组?

时间:2017-02-02 19:46:36

标签: sql-server

我的愿望是按产品说明分组销售报告,显示每件商品的数量和价格。我遇到的问题是我只想按产品描述进行分组,而不是我必须包含的其他字段,因为SELECT子句中有聚合函数。我在各地搜索和搜索,并没有找到一个简单的解决方案。

1 个答案:

答案 0 :(得分:0)

您不能使用单个SELECT,但是,您可以使用子查询来计算聚合值。

给出两个表,产品和销售:

产品

ProductID
Description1
Description2
MoreProductAttributes

销售

ProductID,
Date,
Quantity,
Amount

您可以定义类似于此的查询:

SELECT p.ProductID, p.Description1, p.Description2. p.MoreAttributes,
       s.TotalQty, s.TotalAmount
FROM Products p
     INNER JOIN (SELECT ProductID, SUM(Quantity) TotalQty, SUM(Import) TotalAmount
                 FROM Sales
                 WHERE Date BETWEEN Date1 AND Date2
                 GROUP BY ProductId) s
     ON o.ProducID = s.ProductID;