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