Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 获取给定日期的信息/距离给定日期最近的日期_Sql Server_Sql Server 2012 - Fatal编程技术网

Sql server 获取给定日期的信息/距离给定日期最近的日期

Sql server 获取给定日期的信息/距离给定日期最近的日期,sql-server,sql-server-2012,Sql Server,Sql Server 2012,我正在尝试查找ID的状态是否为活动/在给定日期备份/距离给定日期最近的日期 我的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

我正在尝试查找ID的状态是否为活动/在给定日期备份/距离给定日期最近的日期

我的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')