2012-01-31 115 views
-2

我想產生一個基於SQL查詢的報告,將允許插入一個日期範圍,以獲得可用數據的選擇。聲明標量變量?

我遇到的問題是,當我嘗試這個,我得到的錯誤:

Must declare the scalar variable "@DateFrom".

我使用的是SQL低於:

SELECT 
    [Cost Category ID] 
FROM 
    SRVS.dbo.PACostCategories 
WHERE 
    (@DateFrom IS NULL OR alias.myDate>= @DateFrom) AND 
    (@DateTo IS NULL OR alias.MyDate < DATEADD(d, 1, @DateTo)) 

任何指針讓我在正確的方向非常讚賞。

+5

什麼是不清楚的錯誤信息?它非常清楚 - 你必須在使用之前聲明變量。 – JNK 2012-01-31 16:19:27

+0

我認爲這是MS SQL-Server?如果是這樣,你需要告訴它'@ DateFrom'和'@ DateTo'是什麼。 – 2012-01-31 16:19:53

+0

也許在這裏有適當的語法有一些困惑?帶有@符號前綴的詞是變量,而不是表列或字段名稱。 – DOK 2012-01-31 16:24:31

回答

4

您必須在嘗試運行查詢之前聲明該變量。您需要執行以下操作才能使其正常工作:

DECLARE @DateFrom datetime 
DECLARE @DateTo datetime 

SET @DateFrom = yourDateFromValue 
SET @@DateTo= yourDateToValue 

SELECT [Cost Category ID] 
FROM SRVS.dbo.PACostCategories 
WHERE (@DateFrom IS NULL OR alias.myDate>= @DateFrom) AND 
     (@DateTo IS NULL OR alias.MyDate < DATEADD(d, 1, @DateTo)) 
1

您需要的唯一方向和答案 - 向查詢提供變量。

或者在調用查詢時出現拼寫錯誤。