SQL分区日期

时间:2016-06-23 20:56:28

标签: sql

我有这样的数据:

void reverse ( char* str )
{

        if ( *str ) reverse ( str + 1 ); /* If not end of string, recurse.*/

        if ( *str ) cout << *str; /* print the character */
}

但我希望这是最终结果:

ID|From Date  |To Date
1 |01/01/2014 |04/01/2015
1 |04/01/2015 |01/01/2016
1 |01/01/2016 |12/31/2016

我尝试过分区,但我不太熟悉它是如何工作的。任何建议都将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:2)

我不确定每一行会发生什么,但如果您需要的是每个ID最早的开始日期和最新结束日期......

SELECT ID
   , MIN([From Date]) AS [From Date]
   , MAX([To Date]) AS [To Date]
   FROM Table
GROUP BY ID

这会让你

1 | 01/01/2014 | 12/31/2016