SSRS计算不同的字段!B.value Where Fields!A.value =

jre*_*121 16 sql-server reporting-services

我有两张桌子的报告.第一个表是客户列表,详细说明了每个客户端,这些客户端分为三个类别,每个客户端具有不同的项目.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
Run Code Online (Sandbox Code Playgroud)

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

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

  • 类型B + C - 类型为B或C的不同ClientID

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

我希望这很清楚,如果不是让我知道我需要添加什么来清除它.

Ian*_*ton 25

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

B + C型:

=CountDistinct
(
  IIf
  (
    Fields!Type.Value = "B" or Fields!Type.Value = "C"
    , Fields!ClientId.Value
    , Nothing
  )
  , "datasource1"
)
Run Code Online (Sandbox Code Playgroud)

C型:

=CountDistinct
(
  IIf
  (
    Fields!Type.Value = "C"
    , Fields!ClientId.Value
    , Nothing
  )
  , "datasource1"
)
Run Code Online (Sandbox Code Playgroud)