我有一个显示客户订单数据的 SQL Server Reporting Services 报告,但它的分组如下:
Store
Customer
Customer Order Items
因此,每个报告都是一组商店,每个商店有一个客户子组,然后是每个客户的商品。我试图在报告中相应组的每个标题记录中显示汇总销售和其他信息。其中大部分工作正常,但对于每个商店标题记录,我想显示客户数量。我正在尝试使用 RowCount、CountDistinct 和其他聚合函数的一些变体和/或组合,但无济于事。
任何人都可以帮助我确定我基本上如何获得客户组的“计数”以显示在商店级别的标题上?蒂亚!
最佳答案
CountDistinct
在 Customer 上应该可以正常工作 - 如果它在 Store 组标题行中,则无需指定范围。
我做了一个简单的测试。
数据:
设计师报告:
最需要注意的是 CountDistinct
在商店标题行中的客户上;这只是使用的表达式:
=CountDistinct(Fields!customer.Value)
最终结果,显示正确的值:
如果我遗漏了什么,请告诉我。
评论后编辑:
提前为这需要多长时间道歉。
之前的报告确实有 Store 和 Customer 的行组,但我希望对其进行修改以使其更加清晰。仍然基于相同的数据集:
您可以看到有三个行组,报告中的每一行实际上是属于这些组之一的组标题行。
在 Store 组标题行中,我保持相同的
CountDistinct
表达。我还添加了一个 CountRows()
表达式以显示每个不同组中可用的实际行数。在这里你可以看到 Store1,
CountRows
回来了 4 ,即我们在此范围内聚合了四行,这就是我们期望查看数据集的内容。同样,当我们应用
=CountDistinct(Fields!customer.Value)
在 Store 范围内,我们正在考虑这些相同的 4 行,我们看到 Store1 有两个不同的客户,这对我来说似乎是正确的。对于 Store2,我们正在考虑 6 总共有三个不同的客户。同样,只需申请
=CountDistinct(Fields!customer.Value)
我们得到正确的值。希望这个重新调整的报告有助于澄清事情。如果我仍然没有得到您的要求,您能否根据我的示例数据集解释我的示例报告中的哪些数字是错误的?这样我就可以很容易地调整我这边的事情。
关于reporting-services - SQL Server 报表生成器 - 显示子组计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16469521/