我有一个存储过程,我想在表格中添加日期列。然后我想知道如何让MS-SQL使用CTE动态生成多行。说我有这个..
(GETDATE() - 548) --(365 days --> 12 months, 548 days --> 18 months...
你们如何制作一个可以创建548行且日期列为行
的查询#1 - '12/17/2012' #2 - '12/16/2012' #3 - '12/15/2012'
等。排#548?所有这些都进入了CTE?
...谢谢
答案 0 :(得分:3)
除非我遗漏了某些内容,否则您需要以下内容:
;with dates(value) as
(
select DATEADD(d, -548, cast(getdate() as DATE))
union all
select DATEADD(D, 1, value)
from dates
where DATEADD(D, 1, value) <= cast(getdate() as DATE)
)
select *
from dates
order by value desc
OPTION (MAXRECURSION 1000)