回答

收藏

丢弃结果中包含的现有日期,SQL Server

技术问答 技术问答 93 人阅读 | 0 人回复 | 2023-09-12

在我的数据库中,我有一个Reservation表,它有三列Initial Day,Last Day 和House Id。+ r) D2 f" J4 z) ]4 ]; s
我想计算总天数,而忽略重复的天数,例如:
0 M, e  n& p* y  P* T+-------------+------------+------------+
4 u" q7 d# ]9 W' Q: ~|             | Results    |            |- z2 K+ Y! d* p, z( B
+-------------+------------+------------+
# e$ {6 T$ v0 G9 s* Z% J0 t|   House Id  | InitialDay |  LastDay   |
4 {# X+ Q& V/ v- r1 Y+-------------+------------+------------+8 E$ k3 v# e1 x! ^- Q: S
|  1          | 2017-09-18 | 2017-09-20 |
! _/ p9 a* k4 \5 b|  1          | 2017-09-18 | 2017-09-22 |) W) r6 G. n: D
| 19          | 2017-09-18 | 2017-09-22 |) I0 D2 ~; ], N2 D% H. t: L
| 20          | 2017-09-18 | 2017-09-22 |
6 K* D, c4 ]2 }: l. T& R$ g+-------------+------------+------------+
' `- y8 d; K0 m2 S如果您发现House
* e, A' e, Z- w' E5 z4 v# vId编号为1的包含两行,并且每一行都有日期,但是第一行在第二行的日期间隔中。总的天数应该为5,因为不应将第一天计算在内,因为第二天已经存在这些天数。2 H" `% H$ \; \4 m' n( y
发生这种情况的原因是,每个房屋都有两个房间,不同的人可以在同一日期住进该房屋。
# r) I, ]9 t2 k1 Z0 S我的问题是:我该如何忽略这些情况,而仅计算房屋被占用的真实日期?
" V( T) O  l  ~2 P2 t2 C' S4 P; _9 u+ w               
" ]5 p0 K  }, M& X解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则