【发布时间】:2015-12-30 07:55:59
【问题描述】:
我有一个类似的专栏:
LEFT_PIN_HEIGHT_MIN
0
0
0
1
1
0
我写给Tablix如下,
=Sum(Fields!LEFT_PIN_HEIGHT_MIN.Value)
我想对字段求和,结果必须是 "2" 但它不会对列求和
并将所有行写入Tablix.
【问题讨论】:
标签: reporting-services sum ssrs-expression
我有一个类似的专栏:
LEFT_PIN_HEIGHT_MIN
0
0
0
1
1
0
我写给Tablix如下,
=Sum(Fields!LEFT_PIN_HEIGHT_MIN.Value)
我想对字段求和,结果必须是 "2" 但它不会对列求和
并将所有行写入Tablix.
【问题讨论】:
标签: reporting-services sum ssrs-expression
我同意前面的答案,您的首选应该是在 SQL 中计算它,但有时这并不实际。
您是否尝试在每一行中显示列的总和?如果是这样,请将数据集名称作为第二个参数添加到 sum 函数中,如
=Sum(Fields!LEFT_PIN_HEIGHT_MIN.Value,"Dataset1")
将"Dataset1" 替换为您的数据集的名称。您当前使用的Sum 函数在您的tablix 中每一行的上下文中定义总和。添加第二个参数会更改该上下文以返回每行中整个数据集的总和。
如果您的 tablix 很大,这可能会导致性能下降,因为表达式将在每次显示时进行评估,因此更倾向于在数据集查询中执行此操作。
【讨论】:
我建议用 SQL 来做。使用查询SELECT SUM(LEFT_PIN_HEIGHT_MIN)...
如果你想通过 SSRS 表达式来实现它,你可以这样做:
Right Clicktable1_Details_Group > Group Properties...
在Group on: 字段中提供LEFT_PIN_HEIGHT_MIN 点击OK
在值行的左侧隐藏0 > Right Click > Row Visibility 检查Show or hide based on an expression 然后编写以下表达式:=IIF(Fields!LEFT_PIN_HEIGHT_MIN.Value = 0, true, false) 点击OK
它应该可以工作。
【讨论】: