SSRS中多行比较的查找问题

时间:2015-05-26 19:49:10

标签: reporting-services

我有两个数据集,如下所示

FirstOne

CFamily CName Cno Role

AFamily A     1   Main

AFamily B     2   Secondary

SecondOne

CName Cno Product

A     1   P1

A     1   P2

B     2   P1

B     2   P2

该表使用第二个数据集进行映射,并使用Lookup按CFamily分组。现在,在每个组(CFamily)下,我需要显示一个额外的行来显示Contact with Role(Main)。我使用Lookup表达式如下。

Lookup(Fields!Cno.Value,Fields!Cno.Value,Fields!CName,"FirstOne")

但它大部分时间都在返回B。有时。是否可以仅显示与角色“主要”联系。

2 个答案:

答案 0 :(得分:0)

SSRS查找功能不可靠 - 最好在数据集上游执行此操作,例如使用SQL连接。

如果您使用SSRS表达式,我会尝试转换数据类型进行比较 - 有时SSRS会在内部决定不同的数据类型,这可能会导致此类数据中断。

e.g。

=Lookup(CInt(Fields!Cno.Value),CInt(Fields!Cno.Value),Fields!CName,"FirstOne")

答案 1 :(得分:0)

显然,迈克的回答并没有奏效。如果这是表中的所有数据,它应该有效 - 尽管如此应该有你的表达。

如果有其他数据而你只想要角色 主要,则可以连接查找字段:

=Lookup(CSTR(Fields!Cno.Value) & "|Main", CSTR(Fields!Cno.Value) & "|" & CSTR(Fields!Role.Value), Fields!CName, "FirstOne")