【问题标题】:SSRS Report Query Type Text - Must declare parameter errorSSRS 报告查询类型文本 - 必须声明参数错误
【发布时间】:2015-10-09 06:53:34
【问题描述】:

我正在编写一份 SSRS 报告。将Store procedure sql 代码处理为查询类型Text 时出现错误。 (查询类型文本的SP代码)

我在 google 和 stackoverflow 上进行了搜索,但找不到合适的解决方案,所以我在这里发帖。

低于错误:

我知道,这个错误是标量变量。忽略最后一条消息Incorrect syntax near ')'.

那么问题来了,当我们使用查询类型文本时,我应该如何声明变量。就像在存储过程中一样,它会自动添加到参数中。

另外,查询类型文本不支持设置变量,我该怎么办?

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

【问题讨论】:

  • 您可以发布查询吗?
  • 你能在数据集中发布你的查询吗?
  • 投反对票会更好!

标签: stored-procedures reporting-services sql-server-2008-r2 ssrs-2008-r2


【解决方案1】:

示例查询

选择 @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

【讨论】:

  • 第一件事,不需要在查询类型文本中使用多选查询,第二我将@ToDate作为参数传递,所以不需要在查询部分设置它。它不会解决我的问题。
  • 请在您的查询中声明一个变量声明@ToDate datetime
【解决方案2】:

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

1 必须像下面这样声明或设置变量,

DECLARE @ToDate DATETIME; -- ended with semicolon ";"
SET @ToDate = CAST(MAX(@ToDate) AS DATETIME) + ' 23:59:59.000'; -- ended with semicolon ";"

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

例如:

Select BillNumber,Name,BillNumber From XYZ -- BillNumber should not be twice

【讨论】:

    【解决方案3】:

    您应该先在 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>

    【讨论】:

    • 我已经先检查了 SSMS 中的输出,一切正常。
    • 我也签入了视图代码,一切都很好,现在我要删除数据集并再次创建它。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 2023-01-18
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多