Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 自定义表达式显示“筛选”和的额外行_Sql Server_Reporting Services_Ssrs 2008_Ssrs 2012 - Fatal编程技术网

Sql server 自定义表达式显示“筛选”和的额外行

Sql server 自定义表达式显示“筛选”和的额外行,sql-server,reporting-services,ssrs-2008,ssrs-2012,Sql Server,Reporting Services,Ssrs 2008,Ssrs 2012,因此,我有一个表格,它从一个过程中得到结果集,所有的东西看起来都很棒,包括底部的总数。用户要求在底部提供一些自定义行,这些行仅表示特定条件或组的总计。假设您有一个名为AuctionPrice的字段。在数据集中,它来自sql过程中的聚合 如果我在表的底部和AuctionPrice字段放置一个额外的行,我会使用如下表达式 =苏米菲尔德!拍卖价格>0,字段!拍卖价格,0 这产生了一个错误,而在比较中使用不同字段的表达式可以正常工作 确实不能使用已包含在数据集中聚合和中的字段来使用表达式吗?这是因为字段

因此,我有一个表格,它从一个过程中得到结果集,所有的东西看起来都很棒,包括底部的总数。用户要求在底部提供一些自定义行,这些行仅表示特定条件或组的总计。假设您有一个名为AuctionPrice的字段。在数据集中,它来自sql过程中的聚合

如果我在表的底部和AuctionPrice字段放置一个额外的行,我会使用如下表达式 =苏米菲尔德!拍卖价格>0,字段!拍卖价格,0

这产生了一个错误,而在比较中使用不同字段的表达式可以正常工作

确实不能使用已包含在数据集中聚合和中的字段来使用表达式吗?

这是因为字段!AuctionPrice栏目有特殊的特点!在里面。您需要使用方括号将其转义

select SUM(IIF([Fields!AuctionPrice] > 0, [Fields!AuctionPrice], 0))
From yourtable
变量、函数和存储过程的名称必须符合以下Transact-SQL标识符规则

第一个字符必须是以下字符之一:

Unicode标准3.2定义的字母。字母的Unicode定义包括从a到z的拉丁字符, 从A到Z,以及其他语言的字母字符

下划线“\”、符号@或数字符号

标识符开头的某些符号在SQL Server中具有特殊意义。以at符号开头的常规标识符始终表示局部变量或参数,不能用作任何其他类型对象的名称。以数字符号开头的标识符表示临时表或过程。以双数字符号开头的标识符表示全局临时对象。尽管可以使用数字符号或双数字符号字符来开始其他类型对象的名称,但我们不推荐这种做法

某些Transact-SQL函数的名称以双引号@@开头。为避免与这些函数混淆,不应使用以@开头的名称

后续字符可以包括以下内容:

Unicode标准3.2中定义的字母。 来自基本拉丁语或其他国家文字的十进制数字。 at符号、美元符号$、数字符号、, 或下划线。 标识符不能是Transact-SQL保留字。SQL Server保留保留字的大小写版本。在Transact-SQL语句中使用标识符时,不符合这些规则的标识符必须用双引号或括号分隔。保留的字取决于数据库兼容性级别。可以使用ALTER DATABASE语句设置此级别

不允许使用嵌入空格或特殊字符。 不允许使用补充字符。
在Transact-SQL语句中使用标识符时,不符合这些规则的标识符必须用双引号或括号分隔。

要使ssrs表达式正常工作,您忘记在字段后定义.value

正确的表达式必须与下面的表达式类似

=苏米菲尔德!AuctionPrice.value>0,字段!AuctionPrice.value,0