【发布时间】:2017-01-18 16:04:49
【问题描述】:
所以基本上,假设我们有一个具有开始和结束日期的项目列表。像这样的:
| Name | Start | Finish |
---------------------------------
| Item 1 | Jan 1 | Jan 4 |
| Item 2 | Jan 3 | Jan 5 |
| Item 3 | Jan 4 | Jan 7 |
| Item 4 | Jan 10 | Jan 14 |
| Item 5 | Jan 15 | Jan 17 |
| Item 6 | Jan 17 | Jan 20 |
| Item 7 | Jan 25 | Jan 27 |
| Item 8 | Jan 26 | Jan 26 |
| Item 9 | Jan 27 | Jan 30 |
如果项目的开始日期介于组其他成员的最低开始日期和最高完成日期之间,我基本上需要获取组中项目的分组日期,如上所示。 1 月 1 日至 7 日、1 月 10 日至 14 日、1 月 15 日至 20 日和 1 月 25 日至 30 日。在 SQL 中是否有比简单地强制执行此操作更简单的方法?
谢谢!
【问题讨论】:
-
有没有一种简单的方法来分组...你尝试过哪些方法?显示代码!
-
暴力破解。只需遍历行并逐个添加它们
-
LargeCrimsonFish 的问题并不完全清楚,但数据似乎可以拯救你。您似乎想要将在无活动期间处于活动状态(在开始和结束之间)的所有项目组合在一起。对吗?
-
对,完全正确。我一直在运行嵌套的while循环,但这似乎效率不高,所以我想知道是否有更有效的方法来做到这一点。感谢您的回复!
标签: sql