gpt4 book ai didi

sql - 在 SSRS 查询中使用参数

转载 作者:行者123 更新时间:2023-12-03 09:24:09 24 4
gpt4 key购买 nike

使用 SQL Server Report Builder 和 Visual Studio 2012,我尝试使用 @myDate 变量执行一个简单的查询(其中可能有错误,但我只是写得非常快,真正的查询确实如此)没有错误:D)

Select * from myTable x 
inner join OtherTable y on x.Id = y.Id
where x.date = @myDate or y.date = @myDate

因此,当我使用它时,我需要为其创建参数,设置参数的名称和值,因此它将是@myDate,他的值将等于 =参数!myDate.Value。我希望它是可见的,这样我就可以随时更改它以查询不同的日期,这将对表中的不同数据进行排序。所以我可以设置一个默认值,但这不是问题。

我遇到的问题是当我运行报告时,它询问我要设置为参数的日期。我输入一个日期,然后它崩溃了。

错误内容如下:

SQL0206:找不到列或全局变量@MYDATE。原因...:@MYDATE 未找到作为表 *N in *N 的列,并且未找到作为全局变量...等等

所以在这个错误之后我尝试添加

DECLARE @myDate as DATE

但这也不起作用..

你们中有人做过这样的事情吗?我应该尝试一些不同的东西吗?

感谢您花时间帮助新手!

---------------编辑----------------

类型不匹配的代码

Select * from myTable x 
inner join OtherTable y on x.Id = y.Id
where Date(x.date) = ? or Date(y.date) = ?

因此,当您在 SSRS 数据集中创建这样的查询时,它会提示您识别参数。所以我创建了 1 个日期/时间类型的参数(SSRS 中仅提供日期类型),并且在查询属性中我设置了这两个参数?值:[@DateParameter]

所以现在的问题是SSRS Date/Time类型与数据库Date类型比较时数据溢出

最佳答案

我找到了一种方法。您必须使用查询表达式。

所以

="Select * from myTable x 
inner join OtherTable y on x.Id = y.Id
where Date(x.date) = &" Parameters!MyDate.Value " &
or Date(y.date) = & " Parameters!MyDate.Value " &"

这是我的疑问。现在我必须为我的参数赋予一个值,因此我创建了另一个包含此查询的数据集:

SELECT CURRENT TIMESTAMP
FROM sysibm.sysdummy1

然后我花了一段时间,我只需要根据我的需要格式化它,所以我添加了一个带有如下表达式的列:

=Cdate(Left(Cdate(DateSerial(cdate(Left(Fields!Date_Filter.Value,10)).Year, 
cdate(Left(Fields!Date_Filter.Value,10)).Month,
cdate(Left(Fields!Date_Filter.Value, 10)).Day)), 10))

然后我将参数的默认值设置为此数据集的列。然后效果就很好了!

关于sql - 在 SSRS 查询中使用参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25081314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com