【发布时间】:2017-09-14 20:35:51
【问题描述】:
在我的数据库中,我有一个Reservation 表,它有三列Initial Day、Last Day 和House Id。
我要统计总天数,省略那些重复的,例如:
+-------------+------------+------------+
| | Results | |
+-------------+------------+------------+
| House Id | InitialDay | LastDay |
+-------------+------------+------------+
| 1 | 2017-09-18 | 2017-09-20 |
| 1 | 2017-09-18 | 2017-09-22 |
| 19 | 2017-09-18 | 2017-09-22 |
| 20 | 2017-09-18 | 2017-09-22 |
+-------------+------------+------------+
如果您注意到编号为 1 的 House Id 有两行,每行都有日期,但第一行在第二行的日期间隔内。总天数应为 5,因为不应将第一个天数计算在内,因为这些天数已存在于第二个中。
发生这种情况的原因是每个房子都有两个房间,不同的人可以在同一日期住在那个房子里。
我的问题是:我怎样才能忽略这些情况,只计算房子被占用的真实天数?
【问题讨论】:
-
我认为您也可以拥有像
1, 2017-08-20, 2017-08-22这样的记录,您希望将这些天数添加到一号房屋的总数中吗? -
那么输出会是什么? House 1 5 天还是...?还有其他列吗?
标签: sql sql-server date