我怎样才能得到如下所示的结果。我的查询应该接受current date
作为输入参数。
结果 :
(Prior 7 - 12 Months) (Prior 4 - 6 Months) (Current - 3 Months)
Analysis 3/23/2012-09/20/2012 09/21/2012-12/19/2012 12/20/2012-3/20/2013
Total Active 2 0 0
要生成的部分**Total active**
已完成,如下所示。
;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 Count(*)
FROM x
WHERE rn1 = 1 AND status IN ('Backup','Active')
数据 :
ID StatusDate Status Order
2145 2012-04-29 n/a 1
2145 2012-08-02 Backup 2
2145 2012-11-09 Active 3
2145 2012-11-12 Backup 4
2145 2012-12-13 Pending 5
2145 2012-12-18 Sold 6
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