【发布时间】:2018-10-31 18:29:05
【问题描述】:
我正在尝试使用 SQL Server 2014 中的查询打印出 xml 结果。
该查询应该返回某个日期范围内的数据,并返回玩家姓名和玩家时间的串联列表。
仅当playEnd 位于下一个玩家playStart 的 30 分钟内时,才会发生串联。
如果我有这样的数据:
Name PlayDate PlayStart PlayEnd
----------------------------------------------------
player1 | 10/8/2018 | 08:00:00 | 09:00:00
player2 | 10/8/2018 | 09:10:00 | 10:10:00
player3 | 10/9/2018 | 10:40:00 | 11:30:00
player4 | 10/11/2018 | 08:30:00 | 08:37:00
player5 | 10/11/2018 | 08:40:00 | 08:50:00
player6 | 10/12/2018 | 09:00:00 | 09:45:00
player7 | 10/12/2018 | 09:50:00 | 10:10:00
player8 | 10/12/2018 | 10:30:00 | 12:20:00
- player1 和 player2 播放时间将连接在一起,例如: player1, player2 = 2018 年 10 月 8 日的 8:00:00 - 10:10:00
- player3 将是:player3 = 10:40:00 - 11:30:00 for 10/9/2018
- player4 和 player5 的播放时间将连接起来,如:player4, player5 = 08:30:00 - 08:50:00(2018 年 10 月 11 日)
- player6 和 player7 和 player8 的播放时间将连接起来,如:player6、player7、player8 = 09:00:00 - 12:20:00(2018 年 10 月 12 日)
我已尝试以多种方式修改下面的查询,但我只是不知道如何将一行数据与下一行数据进行比较,然后在需要时将两者(或更多)结合起来。
select Name, PlayDate, PlayStart, PlayEnd
where playDate between '10/8/2018' and '10/12/2018'
for xml auto
有没有办法用 SQL Server 2014 做到这一点?
谢谢!
【问题讨论】:
标签: sql sql-server sql-server-2014