Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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_Sql Server_Sql Server 2008_Sequence_Gaps And Islands - Fatal编程技术网

SQL Server:按序列号聚合

SQL Server:按序列号聚合,sql,sql-server,sql-server-2008,sequence,gaps-and-islands,Sql,Sql Server,Sql Server 2008,Sequence,Gaps And Islands,我需要一些帮助来收集一些数据。假设我有下表: number Name From Date To Date Sequency No_ ---------------------------------------------------- 123440 MJCL 03/12/2014 02/09/2015 1 123440 MJCL 07/09/2015 06/03/2016 1 123440 MJCL 07/03/2016 06/09/201

我需要一些帮助来收集一些数据。假设我有下表:

number  Name    From Date   To Date     Sequency No_
----------------------------------------------------
123440  MJCL    03/12/2014  02/09/2015  1
123440  MJCL    07/09/2015  06/03/2016  1
123440  MJCL    07/03/2016  06/09/2016  2
123440  MJCL    07/09/2016  06/03/2017  3
123440  MJCL    07/03/2017  31/12/9999  4
123442  GJSVF   15/12/2014  14/06/2015  1
123442  GJSVF   15/06/2015  14/12/2015  2
123442  GJSVF   15/12/2015  14/06/2016  3
123442  GJSVF   27/03/2017  26/03/2018  1
我需要一个SQL查询来输出以下内容:

number  Name    From Date   To Date
--------------------------------------
123440  MJCL    03/12/2014  02/09/2015
123440  MJCL    07/09/2015  31/12/9999
123442  GJSVF   15/12/2014  14/06/2016
123442  GJSVF   27/03/2017  26/03/2018
基本上,我需要的是通过[sequence No_uu]连接行,并返回[sequence No_u]=1的[From Date]和序列最后一个[sequence No_u]的[to Date]。有什么想法吗

请注意,数据库是SQL Server 2008

这称为问题

下面是一个使用行数窗口函数的技巧

;WITH cte
     AS (SELECT *,
                Grp = Row_number()OVER(partition BY number ORDER BY [From Date],[Sequency No_]) - [Sequency No_]
         FROM   Yourtable)
SELECT number,
       NAME,
       [From Date] = Min([From Date]),
       [To Date] = Max([To Date])
FROM   cte
GROUP  BY number,
          NAME,
          Grp 

试试这个..这个对你有用:

SELECT number,Name,MAX(From_Date) From_Date,MAX(To_Date) To_Date
FROM   Trans_Tab
GROUP BY number,Name

UNION ALL

SELECT number,Name,MIN(From_Date) From_Date,MIN(To_Date) To_Date
FROM   Trans_Tab
GROUP BY number,Name
ORDER BY number,Name

你试过什么吗?所以,这不是一个代码编写服务。我尝试了在其他问题中看到的差距和孤岛问题解决方案,但我没有在一组一组地添加我的组。P的答案ரதீப் 解决我的问题。这会给我每个数字的第一个和最后一个记录。我需要通过[sequence No_uu]连接行,并返回[sequence No_u]=1的[From Date]和序列最后一个[sequence No_u]的[to Date]。Pரதீப் 这个答案对我有用。谢谢