我正在尝试查找是否在status
给定日期/最接近给定日期的日期。ID
Active/Backup
我的 CTE 中的数据:
ID StatusDate Status Order
2145 2012-04-29 n/a 1
2145 2012-08-02 Backup 2
2145 2012-09-27 Backup 3
2145 2012-11-07 Backup 4
2145 2012-11-09 Active 5
2145 2012-11-12 Backup 6
2145 2012-12-13 Pending 7
2145 2012-12-18 Sold 8
2146 2012-10-15 Pending 1
2146 2012-10-15 n/a 2
2146 2012-12-19 Sold 3
4145 2012-04-24 Active 1
4145 2012-04-24 Active 2
4145 2012-05-22 Pending 3
4145 2012-09-13 Active 4
4145 2012-09-13 Active 5
4145 2012-12-05 Pending 6
4145 2012-12-19 Sold 7
7175 2012-11-08 n/a 1
7175 2012-12-01 Backup 2
7175 2012-12-05 Active 3
7175 2012-12-06 Pending 4
7175 2012-12-19 Sold 5
结果 :
Analysis 09/20/2012 12/19/2012 3/20/2013
Total Active 2 0 0
结果的标题应为:距当前日期 6 个月前的日期,距当前日期和当前日期 3 个月前的日期。**
这是我正在努力解决的问题:
;WITH x AS
(
SELECT ID,statusdate,status , row_number() over (partition by ID order by statusdate DESC ) as RN1
FROM
(SELECT ID,statusdate,status,
rn = row_number() over (partition by ID order by statusdate )
FROM tblHistory (nolock)
WHERE [statusdate] <= '20120920' AND
ID in ('2145','2146','4145''7175')
) AS A
)
SELECT ID,statusdate,status
FROM x
WHERE rn1 = 1 AND status IN ('Backup','Active')