自定义表达式的额外行以显示 "filtered" 总和
Extra rows for custom expression to display "filtered" sum
所以我有一个 table 从过程中获取结果集,一切看起来都很棒,包括底部的总数。用户要求在底部提供一些自定义行,这些行仅代表特定条件或组的总计。假设您有一个名为 AuctionPrice 的字段。在数据集中,它来自 sql 过程中的聚合。
如果我在 table 和 "AuctionPrice" 字段的底部放置一个额外的行,我使用这样的表达式
=SUM(IIF(Fields!AuctionPrice > 0, Fields!AuctionPrice, 0))
这产生了一个错误,而在比较中使用不同字段的表达式工作正常。
您是否不能使用已包含在数据集中聚合(求和)中的字段的表达式?
这是因为Fields!AuctionPrice
列中有特殊字符(!)
。您需要使用方括号
转义它
select SUM(IIF([Fields!AuctionPrice] > 0, [Fields!AuctionPrice], 0))
From yourtable
Rules for Regular Identifiers
变量、函数和存储过程的名称必须符合以下 Transact-SQL 标识符规则。
第一个字符必须是以下之一:
一个由Unicode Standard 3.2
定义的字母。字母的 Unicode 定义包括从 a 到 z 的拉丁字符,
从 A 到 Z,以及其他语言的字母字符。
下划线 (_
)、at 符号 (@
) 或数字符号 (#
)。
标识符开头的某些符号在 SQL 服务器中具有特殊含义。以 at 符号开头的常规标识符始终表示局部变量或参数,不能用作任何其他类型对象的名称。以数字符号开头的标识符表示临时 table 或过程。以双数字符号 (##) 开头的标识符表示全局临时对象。虽然数字符号或双数字符号字符可用于开始其他类型对象的名称,但我们不建议这种做法。
一些 Transact-SQL 函数的名称以双符号 (@@
) 开头。为避免与这些函数混淆,您不应使用以 @@
.
开头的名称
后续字符可以包括以下内容:
- Unicode 标准 3.2 中定义的字母。
- 来自基本拉丁语或其他国家脚本的小数。
- at 符号、美元符号 (
$
)、数字符号、
或下划线。
标识符不能是 Transact-SQL 保留字。 SQL 服务器保留保留字的大写和小写版本。 Transact-SQL语句中使用标识符时,不符合这些规则的标识符必须用双引号或括号分隔.保留的字取决于数据库兼容级别。可以使用 ALTER DATABASE
语句设置此级别。
不允许 Embedded spaces
或 special characters
。
Supplementary characters
不允许。
当identifiers
用于Transact-SQL语句时,不符合这些规则的标识符必须用double分隔引号 或括号.
为了使 ssrs 表达式起作用,您忘记在字段后定义 .value
正确的表达方式必须像下面这样
=SUM(IIF(Fields!AuctionPrice.value > 0, Fields!AuctionPrice.value, 0))
所以我有一个 table 从过程中获取结果集,一切看起来都很棒,包括底部的总数。用户要求在底部提供一些自定义行,这些行仅代表特定条件或组的总计。假设您有一个名为 AuctionPrice 的字段。在数据集中,它来自 sql 过程中的聚合。
如果我在 table 和 "AuctionPrice" 字段的底部放置一个额外的行,我使用这样的表达式 =SUM(IIF(Fields!AuctionPrice > 0, Fields!AuctionPrice, 0))
这产生了一个错误,而在比较中使用不同字段的表达式工作正常。
您是否不能使用已包含在数据集中聚合(求和)中的字段的表达式?
这是因为Fields!AuctionPrice
列中有特殊字符(!)
。您需要使用方括号
select SUM(IIF([Fields!AuctionPrice] > 0, [Fields!AuctionPrice], 0))
From yourtable
Rules for Regular Identifiers
变量、函数和存储过程的名称必须符合以下 Transact-SQL 标识符规则。
第一个字符必须是以下之一:
一个由
Unicode Standard 3.2
定义的字母。字母的 Unicode 定义包括从 a 到 z 的拉丁字符,
从 A 到 Z,以及其他语言的字母字符。下划线 (
_
)、at 符号 (@
) 或数字符号 (#
)。
标识符开头的某些符号在 SQL 服务器中具有特殊含义。以 at 符号开头的常规标识符始终表示局部变量或参数,不能用作任何其他类型对象的名称。以数字符号开头的标识符表示临时 table 或过程。以双数字符号 (##) 开头的标识符表示全局临时对象。虽然数字符号或双数字符号字符可用于开始其他类型对象的名称,但我们不建议这种做法。
一些 Transact-SQL 函数的名称以双符号 (@@
) 开头。为避免与这些函数混淆,您不应使用以 @@
.
后续字符可以包括以下内容:
- Unicode 标准 3.2 中定义的字母。
- 来自基本拉丁语或其他国家脚本的小数。
- at 符号、美元符号 (
$
)、数字符号、 或下划线。
标识符不能是 Transact-SQL 保留字。 SQL 服务器保留保留字的大写和小写版本。 Transact-SQL语句中使用标识符时,不符合这些规则的标识符必须用双引号或括号分隔.保留的字取决于数据库兼容级别。可以使用
ALTER DATABASE
语句设置此级别。
不允许 Embedded spaces
或special characters
。Supplementary characters
不允许。
当identifiers
用于Transact-SQL语句时,不符合这些规则的标识符必须用double分隔引号 或括号.
为了使 ssrs 表达式起作用,您忘记在字段后定义 .value
正确的表达方式必须像下面这样
=SUM(IIF(Fields!AuctionPrice.value > 0, Fields!AuctionPrice.value, 0))