我有一个显示客户订单数据的SQL Server Reporting Services报表,但它按如下方式分组:
Store
Customer
Customer Order Items因此,每个报表都是一个商店分组,每个商店有一个客户子组,然后是每个客户的项目。我试图在报告中适当组的每个标题记录中显示总销售额和其他信息。其中大部分都工作得很好,但对于每个商店标题记录,我希望显示客户的计数。我正在尝试使用RowCount、CountDistinct和其他聚合函数的一些变体和\或组合,但无济于事。
有人能帮我确定如何在商店级别标题中显示客户组的“计数”吗?蒂娅!
发布于 2013-05-10 04:11:22
客户上的CountDistinct应该工作得很好-如果它在商店组标题行中,则不需要指定范围。
我做了一个简单的测试。
数据:

设计器中的报表:

需要注意的最重要的事情是商店标题行中的CountDistinct on Customer;这只是所使用的表达式:
=CountDistinct(Fields!customer.Value)最终结果,显示正确的值:

如果我遗漏了什么,请告诉我。
注释后编辑:
提前为这件事花了多长时间道歉。
之前的报告确实有Store和Customer的行组,但我已经修改了它,希望它更清楚。仍然基于相同的DataSet:

您可以看到有三个行组,报告中的每一行实际上都是属于其中一个组的组标题行。
在Store group header行中,我保留了相同的CountDistinct表达式。我还添加了一个CountRows()表达式,以显示每个不同组中实际有多少行可用。

在这里您可以看到,对于Store1,CountRows正在返回4,即,我们在此范围内聚合了四行,这就是我们在DataSet中所期望的。
类似地,当我们在Store作用域中应用=CountDistinct(Fields!customer.Value)时,我们正在考虑这些相同的4行,并且我们看到Store1有两个不同的客户,这在我看来是正确的。
对于Store2,我们总共考虑了6行,它们有三个不同的客户。同样,只要应用=CountDistinct(Fields!customer.Value),我们就可以获得正确的值。
希望这份重新编排的报告能帮助澄清问题。如果我仍然没有得到你的要求,你能解释一下基于我的样本DataSet的样本报告中的哪些数字是错误的吗?这样我就可以很容易地调整我这边的东西。
https://stackoverflow.com/questions/16469521
复制相似问题