SSRS 报告查询类型文本 - 必须声明参数错误
SSRS Report Query Type Text - Must declare parameter error
我正在处理 SSRS 报告。将 Store procedure
sql 代码处理为查询类型 Text
时出现错误。 (SP code to Query type Text)
我在 google 和 Whosebug 上进行了搜索,但找不到合适的修复解决方案,所以我在这里发帖。
低于错误:
看我知道,这个错误是标量变量。忽略最后一条消息 Incorrect syntax near ')'.
那么问题来了,当我们使用query类型的text时,我应该如何声明变量。就像在存储过程中一样,它会自动添加到参数中。
还有,query type text 不支持set variable 那我该怎么办?
Sample query
SELECT @ToDate = CAST(MAX(@ToDate) AS DATETIME) + ' 23:59:59.000'
SELECT *
FROM TableName
WHERE EndDate BETWEEN GETDATE() AND @ToDate
请帮助我、指导我或建议我克服此问题的最佳解决方案。
注意:我不想用Query Type Store Procedure
。我只想使用 Query Type Text Only
您应该先在 SSMS 中尝试查询,在粘贴到 SSRS 报告之前让它在那里工作。
要在 RDL 文件中声明变量,语法为:
<QueryParameter Name="@ToDate">
<Value>=Parameters!ToDate.Value</Value>
</QueryParameter>
<Query>
<DataSourceName>xxxyourdatasourcexxx</DataSourceName>
<CommandText>SELECT X,Y,Z FROM SCHEMA.TABLENAME WHERE X = @ToDate</CommandText>
</Query>
Sample query
SELECT @ToDate = CAST(MAX(@ToDate) AS DATETIME) + ' 23:59:59.000'
SELECT * FROM TableName WHERE EndDate BETWEEN GETDATE() AND @ToDate
declare @ToDate datetime
--set @ToDate='2015-10-09' this is for example
SELECT @ToDate = CAST(MAX(@ToDate) AS DATETIME) + ' 23:59:59.000'
---select @ToDate
SELECT * FROM TableName WHERE EndDate BETWEEN GETDATE() AND @ToDate
所以我发现了问题,所以当您在报表设计器中编写 SQL 查询时 (Query Type Text) ,
1 变量必须声明或设置如下,
DECLARE @ToDate DATETIME; -- ended with semicolon ";"
SET @ToDate = CAST(MAX(@ToDate) AS DATETIME) + ' 23:59:59.000'; -- ended with semicolon ";"
2 不要从同一个 table 中选择多个值。它会抛出错误。
例如:
Select BillNumber,Name,BillNumber From XYZ -- BillNumber should not be twice
我正在处理 SSRS 报告。将 Store procedure
sql 代码处理为查询类型 Text
时出现错误。 (SP code to Query type Text)
我在 google 和 Whosebug 上进行了搜索,但找不到合适的修复解决方案,所以我在这里发帖。
低于错误:
看我知道,这个错误是标量变量。忽略最后一条消息 Incorrect syntax near ')'.
那么问题来了,当我们使用query类型的text时,我应该如何声明变量。就像在存储过程中一样,它会自动添加到参数中。
还有,query type text 不支持set variable 那我该怎么办?
Sample query
SELECT @ToDate = CAST(MAX(@ToDate) AS DATETIME) + ' 23:59:59.000'
SELECT *
FROM TableName
WHERE EndDate BETWEEN GETDATE() AND @ToDate
请帮助我、指导我或建议我克服此问题的最佳解决方案。
注意:我不想用Query Type Store Procedure
。我只想使用 Query Type Text Only
您应该先在 SSMS 中尝试查询,在粘贴到 SSRS 报告之前让它在那里工作。
要在 RDL 文件中声明变量,语法为:
<QueryParameter Name="@ToDate">
<Value>=Parameters!ToDate.Value</Value>
</QueryParameter>
<Query>
<DataSourceName>xxxyourdatasourcexxx</DataSourceName>
<CommandText>SELECT X,Y,Z FROM SCHEMA.TABLENAME WHERE X = @ToDate</CommandText>
</Query>
Sample query
SELECT @ToDate = CAST(MAX(@ToDate) AS DATETIME) + ' 23:59:59.000'
SELECT * FROM TableName WHERE EndDate BETWEEN GETDATE() AND @ToDate
declare @ToDate datetime
--set @ToDate='2015-10-09' this is for example
SELECT @ToDate = CAST(MAX(@ToDate) AS DATETIME) + ' 23:59:59.000'
---select @ToDate
SELECT * FROM TableName WHERE EndDate BETWEEN GETDATE() AND @ToDate
所以我发现了问题,所以当您在报表设计器中编写 SQL 查询时 (Query Type Text) ,
1 变量必须声明或设置如下,
DECLARE @ToDate DATETIME; -- ended with semicolon ";"
SET @ToDate = CAST(MAX(@ToDate) AS DATETIME) + ' 23:59:59.000'; -- ended with semicolon ";"
2 不要从同一个 table 中选择多个值。它会抛出错误。
例如:
Select BillNumber,Name,BillNumber From XYZ -- BillNumber should not be twice