Reporting services 如何从SSRS数据集行中获取条件为True的值

Reporting services 如何从SSRS数据集行中获取条件为True的值,reporting-services,expression,ssrs-2008,ssrs-expression,Reporting Services,Expression,Ssrs 2008,Ssrs Expression,我有一个名为Reporting的数据集,其中包括标记名、值和日期时间 现在我的问题是:在我的SSRS报告中,我有一个文本框,我想要标记名的值 例如:我有一个名为:“TT101”的标记名,其值为21 所以我的文本框应该显示21 我尝试过这样的表达: =IIf(Fields!TagName.Value = "TT101" , Fields!Value.Value ,0) 所以我希望这个表达式的输出是21,但它是0,因为它总是false或Null,我不知道为什么? 如前所述,数据来自数据集,如下所示

我有一个名为Reporting的数据集,其中包括标记名、值和日期时间

现在我的问题是:在我的SSRS报告中,我有一个文本框,我想要标记名的值

例如:我有一个名为:
“TT101”
的标记名,其值为
21

所以我的文本框应该显示
21

我尝试过这样的表达:

=IIf(Fields!TagName.Value = "TT101" , Fields!Value.Value ,0)
所以我希望这个表达式的输出是
21
,但它是
0
,因为它总是
false
Null
,我不知道为什么?

如前所述,数据来自数据集,如下所示。 既然您已经有了属性(列),它为您提供了值,那么为什么您需要任何表达式来表示它呢

在SSRs中,只需使用Table并将字段分配给一列,它将自动填充N行(对于ex.100行,如果数据集返回100行) 以下是SSRS中Tablix的链接

根据您的评论,只有标记名为TT101时才需要max。 让我们做下面这样的事情

创建一个新列,我们称之为“标记TT101的值” 现在,对于此列,将条件为的值设置为

IIf(Fields!TagName.Value = "TT101" , Fields!Value.Value ,0)
这将做什么,如果标签名不同,将为TT101或0设置值

现在,您可以使用下面的文本框表达式

=Max(Fields!newColumValue.Value, "myDataSetName")

这对你有用

如果您真的只想要所描述的内容,则需要在文本框表达式中添加一个
Sum()
。这样地。所有其他聚合函数也将工作,例如Max、Min、First等

=Sum(IIF(Fields!TagName.Value = "TT101" , Fields!Value.Value ,0))
在文本框中,您总是访问整个数据集,这就是为什么必须使用
Sum()
对其进行聚合的原因。如果您的数据集中有更多的行,这符合条件,您将得到一个求和。如果您确定只有一行符合此条件,则将获得
21


不使用文本框的另一种方法是tablix。在tablix中添加整个数据集,然后转到tablix属性>过滤器并添加过滤器(“TT101”)。这样,当您有更多符合筛选条件的行时,就不会得到求和,您只需要列出每一行。

我知道,但我需要将字段分配给文本框。作为表外示例,我需要标记名为“TT101”的最大值。因此,文本框应显示45。很抱歉,如果您理解错误,但作为文本框而不是表格。好的,我更新了我的答案与您的具体要求。