【问题标题】:Group by first two numbers in a field and give it a name with totals in SSRS/Expression. 2102 & 2104 would be 2100 Group按字段中的前两个数字分组,并在 SSRS/Expression 中为其命名。 2102 和 2104 将是 2100 组
【发布时间】:2013-12-02 00:40:26
【问题描述】:

我想按前两个数字分组,重命名,然后与总计一起进行小计。

所以例如我有:

2102 - 5
2104 - 10
2205 - 7
2209 - 11

最后会是这样的:

2102 - 5
2104 - 10
2100 Group Total: 15

2205 - 7
2209 - 11
2200 Group Total: 18

     Grand Total: 33

我知道我可以右键单击 4 位代码并添加组 - 父组 -> 但我迷失了表达方式。我试过自己写,但失败了。

【问题讨论】:

    标签: sql vb.net vba reporting-services expression


    【解决方案1】:

    可能最简单的做法是创建一个计算字段以获取所需的xx00字段,然后将其用作报表中的分组项。

    假设我有这样的数据:

    我添加了一个名为 Group 的计算字段,其中包含一个表达式:

    =Left(CStr(Fields!Number1.Value), 2) & "00"
    

    你可以在这里使用任意数量的表达式 - 我只是选择了这个,因为你没有指定数据类型,这对于大多数类型来说应该是相当安全的。

    从这里开始,只需在新字段上设置一个标准 Tablix 分组:

    对我来说没问题:

    评论后编辑

    要将任意值应用于不同的分组,您可以添加带有 Switch 表达式的计算字段(例如 TeamGroup),类似于:

    =Switch(Left(CStr(Fields!Number1.Value), 2) = "20", "Team1"
      , Left(CStr(Fields!Number1.Value), 2) = "21", "Team2"
      , Left(CStr(Fields!Number1.Value), 2) = "22", "Team3")
    

    您可以根据需要添加更多分组。然后,您可以按照与上述完全相同的方式使用它,即作为 Group 表达式或摘要标签文本框,例如:

    =Fields!TeamGroup.Value & " Group Total:"
    

    【讨论】:

    • 甜蜜!终于重建了你所做的并让那部分工作。
    • 无论如何要将其设置为 2100 等于与 2200 不同的组名?所以不是 2100 Group Total 而是 Team 1 Group Total 等等......
    • 我添加了一些想法;请看上面。
    • 是的,我使用 switch 语句走这条路:=Switch(Fields!group.Value = 5100,"Overhead Pool Total",Fields!group.Value = 5200,"Site Control Total",Fields !group.Value = 5300,"资源评估总计")
    • 伊恩 - 再次感谢。快速提问,我将如何分组或添加一系列组?例如,我有组:2100、2200、2300、2400、2500、2600 等……我只想要 2100、2200 和 2300 的总数,并将其称为类别总数。可能添加另一个组并放置过滤器?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多