ssrs忽略未声明的变量

时间:2015-12-11 16:00:12

标签: sql sql-server tsql reporting-services ssrs-2008

这是我在SSRS2008数据集中使用的查询的一部分

DECLARE @SERVER VARCHAR(20) =  null;

Declare @curDATEFIRST as Integer = @@DATEFIRST;
SET DATEFIRST 1;

IF @a=0 AND @b>1
  BEGIN
    DECLARE @NewStartDate DateTime = (SELECT TOP 1 StartDate FROM UserManagerDates WHERE EmployeeID=@b ORDER BY StartDate DESC);
    IF @NewStartDate>@StartDate SET @StartDate = @NewStartDate;
  END

问题: 我正在将查询从ssms复制到数据集中,当我点击数据集中的刷新时,我只会在定义查询参数中提示@a@b。实际上我甚至没有声明@startdate所以我在定义查询参数选项卡中期待@startdate变量。我应该做些什么改变才能提示@startdate以及其他两个变量?

1 个答案:

答案 0 :(得分:1)

您正在设置@startdate参数,它应该由SSRS而不是您的查询填充,这可能是您没有被提示的原因。

我认为您希望使用@startdate填充@NewStartDate,如果是这样,请尝试以下操作:

DECLARE @SERVER VARCHAR(20) =  null;
Declare @curDATEFIRST as Integer = @@DATEFIRST;
SET DATEFIRST 1;

IF @a=0 AND @b>1
  BEGIN
    DECLARE @NewStartDate DateTime =
      (SELECT TOP 1 StartDate FROM UserManagerDates
       WHERE EmployeeID=@b ORDER BY StartDate DESC);
    IF @NewStartDate>@StartDate SET @NewStartDate = @startdate;
  END