我做了一个我不知道如何解决它的练习。 这里有一个表格,其中有一个月的工人计划:
IDPERSONNE DATE IDPLACE HEURE_DEBUT HEURE_FIN
1 26/09/2017 1 08:00 08:45
1 26/09/2017 1 09:00 10:00
1 26/09/2017 2 10:00 12:00
1 26/09/2017 1 13:00 15:00
1 26/09/2017 2 15:00 17:00
1 26/09/2017 1 17:00 18:00
2 02/09/2017 3 09:00 10:00
2 02/09/2017 3 10:00 12:00
2 02/09/2017 4 13:00 18:00
2 03/09/2017 3 09:00 10:00
2 03/09/2017 3 10:00 12:00
2 03/09/2017 4 13:00 18:00
我想知道一天工人的不同旅行,他在一个地方的结束时间和他在另一个地方开始的开始时间。像这样:
IDPERSONNE DATE IDPLACE1 HEURE_FIN_PLACE1 IDPLACE2 HEURE_DEBUT_PLACE2
1 26/09/2017 1 10:00 2 10:00
1 26/09/2017 2 12:00 1 13:00
1 26/09/2017 1 15:00 2 15:00
1 26/09/2017 2 17:00 1 17:00
2 02/09/2017 3 12:00 4 13:00
2 03/09/2017 3 12:00 4 13:00
我尝试过这样的事情:
SELECT p1.IDPERSONNE, p1.DATE, p1.IDPLACE, max(p1.HEURE_FIN), p2.IDPLACE, min(p2.HEURE_DEBUT)
FROM PLANNING p1
INNER JOIN PLANNING p2 on p1.IDPERSONNE=p2.IDPERSONNE and p1.DATE=p2.DATE and p1.HEURE_DEBUT < p2.HEURE_DEBUT
WHERE p1.IDPLACE <> p2.IDPLACE
GROUP BY p1.IDPERSONNE, p1.DATE
但是如果一个人在两个地方之间的一天旅行很多,我的结果只有2次旅行。
请帮助我!
提前致谢