【发布时间】:2010-09-20 05:22:50
【问题描述】:
我尝试在视图中使用OPTION (MAXRECURSION 0) 来生成日期列表。
这似乎不受支持。这个问题有解决办法吗?
编辑解释我真正想做的事情:
我有 2 张桌子。
table1: int weekday, bool 可用
table2: datetime date, bool 可用
我想要结果: view1:日期(此处为今年的所有日期),可用(来自 table2 或不在 table2 中时来自 table1)。
这意味着我必须在工作日申请加入。 我希望这个解释是可以理解的,因为我实际上在查询中使用了更多具有更多字段的表。
我找到了这个代码来生成递归:
WITH Dates AS
(
SELECT cast('2008-01-01' as datetime) Date
UNION ALL
SELECT Date + 1
FROM Dates
WHERE Date + 1 < DATEADD(yy, 1, GETDATE())
)
【问题讨论】:
-
我通过在数据库中创建一个以日期和星期几作为列的额外表解决了这个问题。我当时为下一个开发者设置了2037年的千年虫……
标签: sql sql-server recursion