gpt4 book ai didi

sql - SSRS - 在我的查询中忽略 SQL 变量

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

我有一个在 SQL 中运行良好的查询。当我尝试将其引入 SSRS 时,报告要求提供 4 个参数。其中两个参数/变量实际上是基于另外两个参数的:

DECLARE @Q int       --SET @Q = 1 -- Quarter 
DECLARE @Year int --SET @Year = 2013

DECLARE @STARTDATE varchar(10)
SELECT @STARTDATE = D FROM (
select case @Q
when 1 then '1/1/' + convert(varchar(10),@Year)
when 2 then '4/1/' + convert(varchar(10),@Year)
when 3 then '7/1/' + convert(varchar(10),@Year)
when 4 then '10/1/' + convert(varchar(10),@Year)
end as D
) sd

DECLARE @ENDDATE varchar(10)
SELECT @ENDDATE = D FROM (
select case @Q
when 1 then '3/31/' + convert(varchar(10),@Year)
when 2 then '6/30/' + convert(varchar(10),@Year)
when 3 then '9/30/' + convert(varchar(10),@Year)
when 4 then '12/31/' + convert(varchar(10),@Year)
end as D
) ed

--(ADDITIONAL SQL CONTINUES USING ALL 4 PARAMETERS) ...

我怎样才能让 SSRS 只要求前两个参数( @Q@Year )而忽略 @StartDate@EndDate因为那些是在查询中计算的?

最佳答案

为查询中未在查询中声明的任何变量的 SSRS 数据集查询添加参数。

但是,一旦添加它们,它们并不总是会自动删除,因此您可能需要从数据集查询中手动删除它们。

例如,这个查询只会为@ParamOne 创建参数:

DECLARE @StartDate, @EndDate DATETIME

SET @StartDate = 'January 1, 2013'
SET @EndDate = 'February 1, 2013'

SELECT
UserName,
Action,
DateOccurred
FROM
myTable
WHERE
DateOccurred BETWEEN @StartDate AND @EndDate
AND UserName = @ParamOne

但是 SSRS 对大小写可能很挑剔。确保它们在您的声明和您对变量的使用之间匹配。

关于sql - SSRS - 在我的查询中忽略 SQL 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15910132/

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