Я пытаюсь создать VIEW в SQL Server 2005.
Код SQL работает как таковой (я использую его в VS2008), но в SQL Server я не могу сохранить его, так как появляется сообщение об ошибке «Объявить скалярную переменную @StartDate» и «Объявить скалярную переменную @EndDate».
Вот код:
WITH Calendar AS (SELECT CAST(@StartDate AS datetime) AS Date
UNION ALL
SELECT DATEADD(d, 1, Date) AS Expr1
FROM Calendar AS Calendar_1
WHERE (DATEADD(d, 1, Date) < @EndDate))
SELECT C.Date, C2.Country, COALESCE (SUM(R.[Amount of people per day needed]), 0) AS [Allocated testers]
FROM Calendar AS C CROSS JOIN
dbo.Country AS C2 LEFT OUTER JOIN
dbo.Requests AS R ON C.Date BETWEEN R.[Start date] AND R.[End date] AND R.CountryID = C2.CountryID
GROUP BY C.Date, C2.Country
И мой вопрос, конечно, - как именно я должен их объявить?
Я пытался поместить в код следующее:
DECLARE @StartDate smalldatetime
DECLARE @EndDate smalldatetime
Но это не сработало, как я и ожидал - оно только дало мне другое всплывающее сообщение:
«Конструкция или оператор SQL объявления курсора не поддерживаются».