【发布时间】:2014-06-03 06:27:56
【问题描述】:
我正在从事金融领域的工作。 所以我想要四月到五月的数据。
假设当前月份是六月,那么我只想要今年的四月到六月,它应该按年和月分组。
如果假设当前月份是 2 月,那么我想要从 去年 4 月到 1 月的详细信息 即 2013 年 4 月至 2014 年 1 月
我为此写了 CTE 表达式我得到了部分结果我不知道我做错了还是正确
declare @Month int
declare @Year int ;
set @Month = 4;
set @Year = YEAR(GETDATE());
if (@Month <= MONTH(GETDATE()))
with cte as
(
SELECT N = 4, YYY = YEAR(GETDATE())
UNION ALL
SELECT N + 1, YYY
FROM cte
WHERE N+1 <= MONTH(GETDATE())
)
select N, YYY from cte
else
with cte as
(
SELECT N = 4 , YYYY = YEAR(GETDATE() - 1)
UNION ALL
SELECT N + 1,YYYY
FROM cte
WHERE N+1 <= 12
)
select N, YYYY from cte
我想要这样的 O/P
如果当前月份大于 4 月,则或更具体地说,假设当前月份是 6 月 那么
April 2014
May 2014
June 2014
如果当前月份是 2014 年 2 月,那么我想要
April 2013
May 2013
June 2013
July 2013
Aug 2013
Sep 2013
Oct 2013
Nov 2013
Dec 2013
Jan 2014
Feb 2014
谢谢。
【问题讨论】:
标签: sql sql-server sql-server-2008