Мне нужно генерировать первую дату каждого месяца, начиная с 01.01.2000 по 31.12.2099.
Проблема: приведенный ниже запрос работает в Management Studio. Тем не менее, это не работает в SSRS. К сожалению, я не могу создать функцию или представление, потому что у меня нет доступа для этого.
Есть ли альтернативный способ написания этого запроса, который бы работал с SSRS? SSRS не любит использование «TOP» в моем запросе.
Ошибка, связанная с "TOP":
Предложение TOP или FETCH содержит недопустимое значение.
declare @pStartDate date = '01/01/2000'
declare @pEndDate date = '12/31/2099'
;With months(DATE, MONTH, YEAR)
as(
SELECT TOP (DATEDIFF(MONTH, @pStartDate, @pEndDate)+1)
TheDate = DATEADD(MONTH, number, @pStartDate),
TheMonth = MONTH(DATEADD(MONTH, number, @pStartDate)),
TheYear = YEAR(DATEADD(MONTH, number, @pStartDate))
FROM [master].dbo.spt_values
WHERE [type] = N'P' ORDER BY number
)
select cast(DATE as Date) as Date from months