报告生成器 - 条件分组

时间:2012-06-06 12:22:42

标签: sql sql-server reporting-services

我有一个Sql查询:

SELECT
  [Order].Quantity
 ,[Order].Refund
 ,[Order].Price
 ,[Order].Archive AS [Order Archive]
 ,[Order].Handled
 ,[Order].[Date] AS [Order Date]
 ,[Order].OrderNum
 ,[Order].SecondaryID
 ,SUM((Quantity - (ISNULL(Refund, 0))) * Price) As Total
 ,Product.CatalogNum
 ,Product.ProductName
 ,Customer.CustomerName
 FROM
 [Order]
 INNER JOIN Customer
 ON Customer.CustomerID = [Order].CustomerID
 INNER JOIN Product
 ON Product.ProductID = [Order].ProductID
 WHERE [Order].OrderNum In (@order) 
 Group By [Order].Quantity,
 [Order].Refund
,[Order].Price
,[Order].Archive
,[Order].Handled
,[Order].[Date]
,[Order].OrderNum,Product.CatalogNum
,Product.ProductName
,Product.ProductPrice
,Customer.CustomerName,Customer.CustomerID
,[Order].SecondaryID Order by Customer.CustomerID,[Order].Quantity

我用它在Report Builder 3.0中构建报表。 对于SQL,我得到了我想要的结果。但是当使用报告工具时,当同一产品(特殊销售等)的价格不同时,我遇到了问题。我没有得到产品的总和数量。 如果同一产品的所有行具有相同的价格,我会做一个SUM - 一切都很棒。 如果价格不同,我需要为同一产品的每个价格组获得一个SUM。

任何想法如何进行?

1 个答案:

答案 0 :(得分:2)

在GROUP BY子句中,删除行

,Product.ProductPrice 

这导致它以不同的价格分组。删除它将使其以产品名称分组,而不管价格如何。