【问题标题】:SSRS Count Distinct Fields!B.value Where Fields!A.value =SSRS 计数不同字段!B.value 其中字段!A.value =
【发布时间】:2013-01-09 18:51:17
【问题描述】:

我有一个包含两个表格的报告。第一个表是客户列表,详细说明了属于三个类别的每个客户,每个客户都有不同的项目。 SQL 将 client_table 与 client_items 表连接起来(每个客户端可以有多个项目),SQL 结果如下所示:

Type    ClientID    ItemID
A       1           1
A       3           1
A       3           2
B       2           1
B       4           3
C       5           2

我的第二个表将返回来自各种类型组合的不同 ClientID 的计数:

  • 总计 (A+B+C) - 我已经用 =CountDistinct(Fields!ClientID.Value,"datasource1") 计算出了这个值

  • 类型 B+C - 类型为 B 或 C 的不同客户端 ID

  • 类型 C - 类型为 C 的不同 ClientID

我希望这很清楚,如果没有,请告诉我需要添加什么来清除它。

【问题讨论】:

    标签: sql-server reporting-services


    【解决方案1】:

    CountDistinct() 计算非空值,因此您可以使用表达式将那些您不想计算的值清空,并执行类似于您的第一个值的操作。

    B+C 型:

    =CountDistinct
    (
      IIf
      (
        Fields!Type.Value = "B" or Fields!Type.Value = "C"
        , Fields!ClientId.Value
        , Nothing
      )
      , "datasource1"
    )
    

    C 型:

    =CountDistinct
    (
      IIf
      (
        Fields!Type.Value = "C"
        , Fields!ClientId.Value
        , Nothing
      )
      , "datasource1"
    )
    

    【讨论】:

    • 这正是我想出的,只是自己回来回答,但你打败了我。谢谢!另外,很好理解我的解释......我知道这个问题有一个简单的解决方案,但我认为我无法描述这个问题将是我最大的障碍。
    【解决方案2】:
    =Sum(CountDistinct(Fields!UserName.Value,"IssueDate7"))
    

    这里Username是行组,Issue7是列组

    问候

    慈悲S

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多