Я пытаюсь создать 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 объявления Declare не поддерживается."