Stored procedures SSRS报告查询类型文本-必须声明参数错误

Stored procedures SSRS报告查询类型文本-必须声明参数错误,stored-procedures,reporting-services,sql-server-2008-r2,ssrs-2008-r2,Stored Procedures,Reporting Services,Sql Server 2008 R2,Ssrs 2008 R2,我正在写SSRS报告。处理存储过程sql代码以查询类型文本时出错。用于查询类型文本的SP代码 我在google和stackoverflow上搜索了一下,但是没有找到合适的修复方案,所以我在这里发布了文章 获取以下错误: 我知道,这个错误是由标量变量引起的。忽略最后一条消息附近不正确的语法 所以问题是,当我们使用查询类型文本时,我应该如何声明变量。与存储过程一样,它将自动添加到参数中 另外,查询类型文本不支持set变量,那么我应该怎么做 Sample query SELECT @ToDate

我正在写SSRS报告。处理存储过程sql代码以查询类型文本时出错。用于查询类型文本的SP代码

我在google和stackoverflow上搜索了一下,但是没有找到合适的修复方案,所以我在这里发布了文章

获取以下错误:

我知道,这个错误是由标量变量引起的。忽略最后一条消息附近不正确的语法

所以问题是,当我们使用查询类型文本时,我应该如何声明变量。与存储过程一样,它将自动添加到参数中

另外,查询类型文本不支持set变量,那么我应该怎么做

Sample query

SELECT @ToDate = CAST(MAX(@ToDate) AS DATETIME) + ' 23:59:59.000'                       
SELECT *
FROM   TableName
WHERE  EndDate BETWEEN GETDATE() AND @ToDate
请帮助我,指导我或建议我克服这个问题的最佳解决方案


注意:我不想使用查询类型存储过程。我只想使用查询类型Text Only

您应该首先在SSMS中尝试该查询,在粘贴到SSRS报告之前使其在那里工作

要在RDL文件中声明变量,语法如下:

=参数!ToDate.价值 xxxSource数据源xxx 从SCHEMA.TABLENAME中选择X、Y、Z,其中X=@ToDate

示例查询

选择@ToDate=CASTMAX@ToDateAS DATETIME+'23:59:59.000' 从TableName中选择*,其中EndDate介于GETDATE和@ToDate之间


我发现了这个问题,所以当您在报表设计器查询类型文本中编写SQL查询时

1变量必须按如下方式声明或设置

2没有从同一个表中选择多个值。它会抛出错误

例如:


从XYZ中选择BillNumber、Name、BillNumber-BillNumber不应超过两次

您可以发布查询吗?您可以在数据集中发布查询吗?带注释的向下投票会更好!我已经先在SSMS中检查了输出,一切正常。我也检查了视图代码,现在一切正常。我将删除数据集,并再次创建它。谢谢你们的帮助。首先,不需要在查询类型文本中使用多个select查询,其次,我将传递@ToDate作为参数,所以不需要在查询部分设置它。它无法解决我的问题。请在查询中声明一个变量declare@ToDate datetime
 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
DECLARE @ToDate DATETIME; -- ended with semicolon ";"
SET @ToDate = CAST(MAX(@ToDate) AS DATETIME) + ' 23:59:59.000'; -- ended with semicolon ";"