【问题标题】:SSRS - Adding total row + percentage of the totalSSRS - 添加总行 + 总百分比
【发布时间】:2018-07-18 11:58:30
【问题描述】:

我有两种水果——香蕉和苹果。我的报告显示(使用矩阵)某些人有多少每种类型,使用这个测试查询:

SELECT 1 AS fruits, 1 AS bananas, 0 AS apples, 'person_1' AS people UNION ALL
SELECT 1 AS fruits, 0 AS bananas, 1 AS apples, 'person_2' AS people

我想删除“水果”字段并在上面的行中添加自动计算两种类型的总和。另外,加上每种水果种类占总数的百分比,即每个人有多少香蕉。

我怀疑这是通过对行进行分组以某种方式完成的,但我无法弄清楚我需要在行上使用哪些组。我没有明显的按列分组。

有什么想法吗?

【问题讨论】:

    标签: reporting-services reporting ssrs-2012 ssrs-2008-r2 ssrs-tablix


    【解决方案1】:

    首先,数据通常采用如下格式:

    SELECT 'person_1' AS people, 'bananas' AS FruitType, 1 AS FruitCount
    UNION ALL
    SELECT 'person_2' AS people, 'apples' AS FruitType, 1 AS FruitCount
    

    使用这样的数据集,构建一个包含矩阵的报告,该矩阵将 FruitTypes 显示在行中,将人员显示在列中,并将 FruitCount(它的总和)显示为数据。这将自动创建一个 FruitType 行组和一个 people 列组:

    右键单击行组列组下的两个组,为每个组添加总计。对于 FruitType 组选择 Add Total Before,对于 people 组选择 Add Total After

    将我在上一个屏幕截图中选择的单元格重命名为 TotalByPerson([people] 列中的总数)和 TotalByFruitType([FruitType] 行中的总数) .此外,将总计行和总计列中的总计重命名为 GrandTotal。这将使百分比公式更具可读性。

    现在,要为百分比添加一行,请右键单击 [FruitType] 行的行选择器,在所选行下方的组内插入一行:

    您可以拆分合并的单元格,为百分比行输入单独的标题,例如 [FruitType] %:

    现在,您可以在相应的表达式窗口中定义两个公式:

    • 在[人]列中:=ReportItems!FruitCount.Value/ReportItems!TotalByPerson.Value
    • 在总计列中:=ReportItems!TotalByFruitType.Value/ReportItems!GrandTotal.Value

    使用文本框属性窗口将两个值格式化为百分比。根据需要定义行的背景颜色后,您的设计窗口应如下所示:

    运行报告,您将从上面的测试数据中收到以下结果:

    【讨论】:

    • 经过一些修改后使其与我的数据集一起使用,谢谢。
    【解决方案2】:

    根据下图设置您的矩阵:

    详细设计视图显示按行/列分组:

    结果应该是这样的:

    【讨论】:

    • 感谢您的想法,不幸的是,报告的结构必须非常具体,与我图片上的外观完全相同:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    • 1970-01-01
    相关资源
    最近更新 更多