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 的不同 ClientID

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

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

4

2 回答 2

29

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"
)
于 2013-01-09T19:21:21.997 回答
2
=Sum(CountDistinct(Fields!UserName.Value,"IssueDate7"))

这里 Username 是行组, Issuedate7 是列组

问候

怜悯小号

于 2013-04-24T06:19:57.567 回答