SSRS:如何在过滤后获得两列的相等ID的计数

SSRS: How to get count of equal ID of two columns after filter

我有以下 table(数据集 2):

ACCOUNT_ID
8d82a329-f23e-ec11-8c62-000d3a8252c3
8988e53a-1158-ec11-8f8f-002248171edf
8988e53a-1158-ec11-8f8f-002248171edf
8b88e53a-1158-ec11-8f8f-002248171edf
8b88e53a-1158-ec11-8f8f-002248171edf
8b88e53a-1158-ec11-8f8f-002248171edf
8b88e53a-1158-ec11-8f8f-002248171edf
8b88e53a-1158-ec11-8f8f-002248171edf
8b88e53a-1158-ec11-8f8f-002248171edf
9788e53a-1158-ec11-8f8f-002248171edf
9788e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
b788e53a-1158-ec11-8f8f-002248171edf
b788e53a-1158-ec11-8f8f-002248171edf
b988e53a-1158-ec11-8f8f-002248171edf

CCA_AGENT_ID
8788e53a-1158-ec11-8f8f-002248171edf
9788e53a-1158-ec11-8f8f-002248171edf
9788e53a-1158-ec11-8f8f-002248171edf
9988e53a-1158-ec11-8f8f-002248171edf
9988e53a-1158-ec11-8f8f-002248171edf
9988e53a-1158-ec11-8f8f-002248171edf
9988e53a-1158-ec11-8f8f-002248171edf
9988e53a-1158-ec11-8f8f-002248171edf
9988e53a-1158-ec11-8f8f-002248171edf
9788e53a-1158-ec11-8f8f-002248171edf
9788e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
9b88e53a-1158-ec11-8f8f-002248171edf
b788e53a-1158-ec11-8f8f-002248171edf
b788e53a-1158-ec11-8f8f-002248171edf
b988e53a-1158-ec11-8f8f-002248171edf

CJ_ID
8098037c-6d89-ec11-93b0-000d3a82c9fa
ac101b6f-478e-ec11-b400-000d3a817222
ac101b6f-478e-ec11-b400-000d3a817222
fabc5219-198e-ec11-b400-000d3a817bb3
fabc5219-198e-ec11-b400-000d3a817bb3
fabc5219-198e-ec11-b400-000d3a817bb3
fabc5219-198e-ec11-b400-000d3a817bb3
fabc5219-198e-ec11-b400-000d3a817bb3
fabc5219-198e-ec11-b400-000d3a817bb3
ac101b6f-478e-ec11-b400-000d3a817222
ac101b6f-478e-ec11-b400-000d3a817222
fabc5219-198e-ec11-b400-000d3a817bb3
fabc5219-198e-ec11-b400-000d3a817bb3
fabc5219-198e-ec11-b400-000d3a817bb3
fabc5219-198e-ec11-b400-000d3a817bb3
fabc5219-198e-ec11-b400-000d3a817bb3
fabc5219-198e-ec11-b400-000d3a817bb3
fabc5219-198e-ec11-b400-000d3a817bb3
fabc5219-198e-ec11-b400-000d3a817bb3
ddb8ebf6-468e-ec11-b400-000d3a817222
ddb8ebf6-468e-ec11-b400-000d3a817222
9ed93c43-478e-ec11-b400-000d3a817222

我想先根据 DataSet1(主数据集)的 ID 值 CJ_ID 进行过滤,然后计算 ACCOUNT_ID = AGENT_ID

的所有行

DataSet2 包含以下字段:

我用下面的表达式创建了一个计算字段,名称为 AccEqualsAgent:

我在文本框上设置了这个表达式并给出了 0 值:

但是,我尝试聚合 AccEqualsAgent 字段的值,它显示 22:

提前致谢。

执行此操作的最简单方法是直接在您的数据集查询中,但假设您由于某种原因不能这样做,那么您可以按如下方式执行此操作。

从数据集属性面板向数据集 2 添加一个计算字段。

将字段命名为 AccEqualsAgent 并将表达式设置为

=IIF(Fields!ACCOUNT_ID.Value = Fields!AGENT_ID.Value, Fields!CJ_ID.Value, "")

现在您可以简单地针对这个新字段执行 LOOKUPSET() 并计算结果,就像这样...

=LookupSet(Fields!ID.Value, Fields!AccEqualsAgent.Value, Fields!AccEqualsAgent.Value, "Dataset2").Length

这将为您提供查找集中找到的记录数


更新工作示例


我根据提供的示例数据为 DataSet2 重新创建了数据。所有数据都存储为数据类型 = UNIQUEIDENTIFIER 然后,我通过从 DataSet2 中获取 CJ_ID 的唯一列表来创建 DataSet1。我是手工完成的,所以它们实际上并没有链接。

然后我使用下面的表达式

向名为 AccEqualsAgent 的 DataSet2 添加了一个计算列
=IIF(Fields!ACCOUNT_ID.Value = Fields!CCA_AGENT_ID.Value, Fields!CJ_ID.Value, "")

然后我在报告中添加了两个 table,这样我们就可以看到我们正在处理的数据。

倒序....

第二个 table 只是 DataSet2 的转储,包括计算字段。

第一个 table 是 DataSet1 的转储,但还包含一个表达式,用于根据您的问题计算匹配记录。

使用的表达式如下

=LookupSet(
    Fields!ID.Value, 
    Fields!AccEqualsAgent.Value, 
    Fields!AccEqualsAgent.Value, "DataSet2"
    ).Length

包括数据集等在内的最终设计看起来像这样..

当报告为 运行 时,我们得到以下...