【发布时间】:2013-02-21 04:34:43
【问题描述】:
这是一个显示过去 24 个月的第一个日期的脚本。
我需要在单个 T-SQL 查询中使用以下功能,而不是迭代。
Declare @intCount as int
SET @intCount = 24
Declare @Date as varchar(25)
While (@intCount >0)
Begin
SET @Date = CONVERT(VARCHAR(25),DATEADD(m,-(@intCount-1),
DATEADD(dd,-(DAY(GETDATE())-1),GETDATE())),101)
select @Date
SET @intCount = @intCount-1
End
以上查询返回 24 个结果集(选择)。但我想要一个结果集
编辑:
主要要求是在子查询中使用这个单一结果
【问题讨论】:
-
在迭代时将它们插入到维度式表中,然后只查询该表怎么样?
-
@Scotch,我没听懂你。你是说临时表?我不擅长 SQL :( 你能否添加你的答案,这样我就可以理解 :)
-
你试过什么?在此处阅读有关递归 CTE 的信息:msdn.microsoft.com/en-us/library/ms186243%28v=sql.105%29.aspx
-
@cha,这个递归 CTE 如何适合这里。抱歉,我不是那个 SQL 专家 :(
-
用递归 CTE 查看我的答案
标签: sql sql-server tsql