0
消息134,級別15,狀態1,行21
變量名'@AsOfDate'已被聲明。變量名稱在查詢批處理或存儲過程中必須是唯一的。在SQL Server 2014中的IF語句中設置變量
運行一組IF語句時出現此錯誤。理想情況下,我只需要將我的位切換到1,然後執行我的代碼即可。 IF
聲明將設置我需要的日期。
我已經嘗試過IF
和ELSE IF
,但這兩者似乎都沒有什麼區別。任何建議我如何能做到這一點將不勝感激。可悲的是,我不能簡單地選擇我所在的地區(或之前的地區),因爲這些報告可能隨時要求提供。
-------------------------
-- Choose Quarter --
-------------------------
DECLARE @Q1 BIT = 0
DECLARE @Q2 BIT = 0
DECLARE @Q3 BIT = 0
DECLARE @Q4 BIT = 0
DECLARE @Annual BIT = 0
-------------------------
--Q1
IF @Q1 = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-03-31';
DECLARE @StartDate datetime = '2016-01-01'
END
--Q2
IF @Q2 = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-06-30';
DECLARE @StartDate datetime = '2016-04-01'
END
--Q3
IF @Q3 = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-09-30';
DECLARE @StartDate datetime = '2016-07-01'
END
--Q4
IF @Q4 = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-12-31';
DECLARE @StartDate datetime = '2016-10-01'
END
-- ANNUAL
IF @Annual = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-12-31';
DECLARE @StartDate datetime = '2016-01-01'
END
-- Check to ensure a time period is set
IF (@Q1 = 0 AND @Q2 = 0 AND @Q3 = 0 AND @Q4 = 0 AND @ANNUAL = 0)
BEGIN
PRINT 'NO TIME SET'
END
-- Run Code with dates
ELSE
BEGIN
編輯:
無視...其實看完我的錯誤和代碼清楚地表明瞭我的定義所問題的變量沒有設置......解決辦法是宣佈我的IF以外的變量語句並在語句中設置它們。
我很高興你能找到解決你的問題。您應該將解決方案作爲答案發布,而不是編輯問題,以便其他人能夠看到它。 –
請發表一個答案,不要更新你的問題的代碼是正確的。這只是令人困惑。 – Blorgbeard
同意,我要重新編輯我的問題以顯示原始錯誤代碼。不知道爲什麼我不想簡單地發表一個答案,我猜是因爲它發生了正確,因爲我提出了這個問題:D – Izulien