SQL Server报表生成器 - 显示子组的计数

ewi*_*ows 4 reporting-services

我有一个SQL Server Reporting Services报告,显示客户订单数据,但其分组如下:

Store
    Customer
        Customer Order Items
Run Code Online (Sandbox Code Playgroud)

因此,每个报告都是一组商店,每个商店都有一个客户子组,然后是每个客户的商品.我试图在报告中的相应组的每个标题记录中显示汇总销售和其他信息.大部分都运行良好,但对于每个商店标题记录,我想显示客户的数量.我正在尝试使用一些变体和/或RowCount,CountDistinct和其他聚合函数的组合,但无济于事.

任何人都可以帮我确定我基本上可以在商店级别标题中显示客户群的"数量"吗?TIA!

Ian*_*ton 6

CountDistincton Customer应该可以正常工作 - 如果它位于Store组标题行中,则无需指定范围.

我把一个简单的测试放在一起.

数据:

在此输入图像描述

设计师报告:

在此输入图像描述

需要注意的最重要的事情是CountDistinct客户的在头行; 这只是使用的表达式:

=CountDistinct(Fields!customer.Value)
Run Code Online (Sandbox Code Playgroud)

最终结果,显示正确的值:

在此输入图像描述

如果我遗失了什么,请告诉我.

评论后编辑:

请提前告知这需要多长时间.

以前的报告确实有商店客户的行组,但我已经对其进行了修改,以使其更加清晰,希望如此.仍然基于相同的DataSet:

在此输入图像描述

您可以看到有三个行组,报告中的每一行实际上都是属于其中一个组的组标题行.

Store组标题行中,我保留了相同的CountDistinct表达式.我还添加了一个CountRows()表达式,以显示每个不同组中可用的实际行数.

在此输入图像描述

在这里你可以看到Store1,CountRows返回4,即我们在这个范围内聚合了四行,这是我们期望看到的DataSet.

同样,当我们=CountDistinct(Fields!customer.Value)Store范围内申请时,我们正在考虑这4行,我们看到Store1有两个不同的客户,这对我来说似乎是正确的.

对于Store2,我们总共考虑了6行,其中有3个不同的客户.再次,只需通过申请=CountDistinct(Fields!customer.Value)我们得到正确的价值.

希望这个重新调整的报告有助于清理问题.如果我仍然没有得到您的要求,您能否根据我的示例DataSet解释我的示例报告中哪些数字有问题?这样我就可以轻松调整事情.