您有一个temp #Dates table
,使用以下条件填充。
IF @Period = 'Monthly'
BEGIN
INSERT #Dates
SELECT MAX(DATE) WeekDays FROM TABLENAV WITH (NOLOCK, READUNCOMMITTED)
GROUP BY DATEDIFF(MONTH, 0, DATE)
ORDER BY MAX(DATE) DESC
END
现在数据在#Dates临时表中
DATE
2013-04-22 00:00:00.000
2013-03-29 00:00:00.000
2013-02-28 00:00:00.000
2013-01-31 00:00:00.000
2012-12-31 00:00:00.000
2012-11-30 00:00:00.000
我希望在传递任何Previous_Date
Todays_Date
我试过跟随
DECLARE @Todays_Date datetime = '2013-04-22'
select date from #Dates where MONTH(DATE) = MONTH(@Todays_Date)-1 AND YEAR(DATE) = YEAR(@Todays_Date)
giving ans : 2013-03-29
但是当年份改变时,我什么都没有得到答案
例如
如果@Todays_Date = '2012-01-31'
它应该返回给我2012-12-31
,但什么都不给。
帮我修改select statement
。
答案 0 :(得分:2)
您可以使用以下查询来获取上一个日期
SELECT top 1 Date FROM #Date WHERE Date <@Todays_Date order by date desc
答案 1 :(得分:2)
select max([Date]) FROM #Date WHERE [Date] <@Todays_Date