【发布时间】:2021-08-07 11:53:13
【问题描述】:
我在 SQL Server 中有下表,并希望获取每个客户的最后一次和下一次约会。
注意:如果第一次约会是在将来,最后一次约会应该是 N/A。同样,如果最后一次约会是过去,下一次约会将是 N/A。如果最后一次约会超过 30 天,则不应显示(如果没有未来的约会 - 被视为不活跃的客户)。
CustomerId (int) | Date (date) | Time (time)
1 | 20210801 | 11:00
1 | 20210802 | 13:00
1 | 20210805 | 10:00
1 | 20210811 | 16:00
1 | 20210821 | 17:00
2 | 20210801 | 11:00
2 | 20210802 | 11:00
2 | 20210803 | 11:00
2 | 20210804 | 11:00
3 | 20210831 | 11:00
4 | 20210526 | 10:00
在这种情况下,结果应该是(假设日期是今天 2021 年 8 月 7 日):
CustomerId (int) | LastAppointment (varchar) | NextAppointment (varchar)
1 | 05 Aug 2021 - 10:00 | 11 Aug 2021 - 16:00
2 | 04 Aug 2021 - 11:00 | N/A
3 | N/A | 31 Aug 2021 - 11:00
谁能帮帮我?一个例子将不胜感激。
【问题讨论】:
-
根据问题指南,请展示您尝试过的内容以及遇到问题的地方。
-
我尝试了多种方式,例如变量表,子查询,但卡住了,因此我在这里问。这是我在这里的第一个问题,所以不确定你是如何证明我之前尝试过的。
-
为什么客户 4 没有包含在您的预期结果中?
-
因为他上次约会超过 30 天
-
您实际上应该在您的问题中包含您的一项尝试,即。实际代码。
标签: sql sql-server tsql sqldatetime