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

时间:2013-01-09 18:51:17

标签: 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

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

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

  • 弄明白了
  • B + C类型 - 类型为B或C的不同ClientID

  • 类型C - 类型为C <

  • 的不同ClientID

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

2 个答案:

答案 0 :(得分:25)

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"
)

答案 1 :(得分:2)

=Sum(CountDistinct(Fields!UserName.Value,"IssueDate7"))

此处Username是行组,Issuedate7是列组

此致

Mercy S