【发布时间】:2017-12-05 16:54:26
【问题描述】:
如何在下一列中获得OrderStop 和OrderStart 之间的区别?
例如,第 1 行的 OrderStop 日期为 2007 年 1 月 31 日我想计算下一个开始日期之间的天数 1/26/2007 我知道它们是重叠的。
ID OrderStart OrderStop
132 4/14/2006 1/31/2007
132 1/26/2007 3/14/2007
132 2/1/2007 3/2/2007
132 3/2/2007 3/14/2007
132 3/14/2007 1/8/2010
132 11/26/2008 1/20/2011
132 1/8/2010 7/14/2010
132 7/14/2010 8/15/2012
132 8/15/2012 1/17/2013
132 1/17/2013 3/22/2013
132 3/21/2013 5/2/2013
132 5/2/2013 8/2/2013
132 5/22/2013 8/2/2013
132 7/29/2013 3/6/2014
132 3/5/2014 7/16/2014
132 7/16/2014 6/19/2015
132 8/21/2014 6/19/2015
132 6/19/2015 4/1/2016
132 6/25/2015 9/9/2015
132 4/1/2016 5/3/2016
132 5/3/2016 7/27/2016
132 8/15/2016 11/2/2016
我正在努力完成以下任务。如何创建可以完成此任务的 SQL 语句?
132 4/14/2006 1/31/2007
132 1/26/2007 4/1/2016
132 4/1/2016 7/27/2016
132 8/15/2016 11/2/2016
【问题讨论】:
-
请清理附件,阅读有关如何提问的常见问题解答。给我们你迄今为止尝试过的 SQL
-
Get previous and next row from rows selected with (WHERE) conditions 的可能重复项或关于
lag()/lead()的许多其他问题 -
我认为这是不可能的。是否有一个 rec_id 字段使这些行中的每一行都是唯一的?
-
您获得第二个数据集的标准不清楚,似乎与 OrderStop 和 OrderStart 之间的区别没有任何关系。
标签: sql-server tsql