2009-09-09 140 views
1

我確定這是簡單的,但我似乎無法弄清楚。爲什麼這個代碼不工作?設置變量值

DECLARE @FirstSaturday DATETIME 
DECLARE @ENDDATE DATETIME 

SELECT @FirstSaturday = min(RED1.DATE) 
FROM REDFRIDAYDATES..TBLREDFRIDAYALLDATES RED1 
WHERE Period = 9 AND year = 2009 
SELECT CASE 
WHEN getdate() < @FirstSaturday 
THEN set @ENDDATE = getdate() 
ELSE SET @enddate = @FirstSaturday 


END 

我只是想將早期日期的值,即今天或期末的值分配給@enddate。

有人能指出我正確的方向嗎?我使用SQL 2000

回答

1

SELECT CASE只是沒有按任何意義,嘗試: -

DECLARE @FirstSaturday DATETIME 
DECLARE @ENDDATE DATETIME 

SELECT @FirstSaturday = min(RED1.DATE) 
FROM REDFRIDAYDATES..TBLREDFRIDAYALLDATES RED1 
WHERE Period = 9 AND year = 2009 

SELECT @ENDDATE = CASE 
WHEN getdate() < @FirstSaturday 
THEN getdate() 
ELSE @FirstSaturday 
END 
1

關鍵字 '終結' 添加到Case語句

DECLARE @FirstSaturday DATETIME 
DECLARE @ENDDATE DATETIME 
SELECT @FirstSaturday = min(RED1.DATE) 
FROM REDFRIDAYDATES..TBLREDFRIDAYALLDATES RED1 
WHERE Period = 9 
    AND year = 2009 

SELECT @ENDDATE = 
    Case 
     WHEN getdate() < @FirstSaturday 
     THEN getdate() 
     ELSE @FirstSaturday 
    End 
3
SELECT @enddate = CASE 
WHEN getdate() < @FirstSaturday THEN getdate() 
ELSE @FirstSaturday 
END 

情況下,T-SQL結束時的表情(如?:在C),而不是流量控制分支,如IF