2017-04-11 69 views
0

我在MS SQL SERVER中的變量定義有問題。你能給我任何提示,我怎麼能把計數結果賦給變量@WorkingDays?如何從WITH聲明變量... SELECT語句

DECLARE @StartDate DATE = '2017-03-29'; 
DECLARE @EndDate DATE = '2017-05-05'; 
DECLARE @WorkingDays INT; 

    WITH DateRange(DateData) AS 
    (
     SELECT @StartDate as Date 
     UNION ALL 
     SELECT DATEADD(d,1,DateData) 
     FROM DateRange 
     WHERE DateData < @EndDate 
    ) 
    SELECT COUNT(DateData) 
    FROM DateRange 
    WHERE DATEPART(dw, DateData) not in (1, 7) 
    OPTION (MAXRECURSION 0) 

I`ve試圖用

set @WorkingDays = (WITH.... OPTION (MAXRECURSION 0)) 

但它返回一個錯誤(不正確的語法)

我會很感激的任何暗示

問候

+0

'設置@x =(從t選擇Y)'或'從t'選擇@x = Y。閱讀http://stackoverflow.com/questions/3945361/set-versus-select-when-assigning-variables – niksofteng

回答

4

SELECT @WorkingDays = COUNT(DateData) ...

+0

非常感謝! – fafnir1990

1

可以按照這個方法:

set @workingDays = (SELECT COUNT(DateData) FROM DateRange 
        WHERE DATEPART(dw, DateData) not in (1, 7) 
        OPTION (MAXRECURSION 0))