Sql server 使用InScope对矩阵中的行组和列组进行SSRS小计?

Sql server 使用InScope对矩阵中的行组和列组进行SSRS小计?,sql-server,reporting-services,sql-server-2012,ssrs-2012,Sql Server,Reporting Services,Sql Server 2012,Ssrs 2012,我在计算列组中父行组的百分比时遇到问题,预期结果如下所示 列组的百分比使用以下表达式直接表示: =Sum(Fields!Total.Value) / Sum(Fields!Total.Value, "LocationGroup") 虽然我无法得到一个表达式来为LocationGroup和CategoryGroup的交集提供小计 通过在TSQL中使用Window函数修改数据集以计算小计,我已经获得了预期的结果,尽管我觉得使用表达式也可以实现这一点 我曾读过许多文章,其中提到了InScope函数

我在计算列组中父行组的百分比时遇到问题,预期结果如下所示

列组的百分比使用以下表达式直接表示:

=Sum(Fields!Total.Value) / Sum(Fields!Total.Value, "LocationGroup")
虽然我无法得到一个表达式来为
LocationGroup
CategoryGroup
的交集提供小计

通过在
TSQL
中使用
Window函数
修改数据集以计算小计,我已经获得了预期的结果,尽管我觉得使用表达式也可以实现这一点


我曾读过许多文章,其中提到了
InScope
函数,尽管我没有像预期的那样工作。

因此,每当您在
类别组中时,您都需要计算列组的总数,如果
子类别组
处于活动状态,则需要计算列组中的百分比
CategoryGroup
,因此我认为以下几点可以实现这一点:

=IIF(InScope("SubcategoryGroup")
    ,Sum(Fields!Total.Value) / Sum(Fields!Total.Value, "CategoryGroup")
    ,Sum(Fields!Total.Value) / Sum(Fields!Total.Value, "LocationGroup")
    )

类似于(伪代码)
IIF
InScope(“子类别组”)
then
Sum(Fields!Total.Value)/Sum(Fields!Total.Value,“CategoryGroup”)
else
Sum(Fields!Total.Value)/Sum(Fields!Total.Value,“LocationGroup”)
我想可以。这给出了整个
类别组的百分比,而不是
类别组
位置组
的交点。因此,位置A下子类别A1的%将返回
12.5%
,这是不正确的。