bonjour,
j'ai une table toute simple :
id_mission
id_personne
date : date
debut : time
fin : time
j'aimerai savoir si il y a un moyen en sql (car là je fais en itératif sur le serveur avec une boucle lourde) de trouver les id_mission qui sont en date croisée (missions superposées).
par exemple, toto qui a une mission le 1/8/2012 de 8h à 11h et une autre le même jour de 8h à 9h (ce qui est impossible physiquement).
mon contenue de table serait :
mission personne date debut fin
1 1 20130801 08 09
2 1 20130801 8 11
3 1 20130802 8 11
il faudrait que la requête me ressorte l'id mission 1 (ou 2)
Je suis certains que c'est une question que quelqu'un s'est déjà posé, ça me semble être un cas d'école pourtant je ne trouve pas de requête tordue qui puisse faire ça sans passer par une itération.
Je crois (après avoir pensé et essayé moultes solutions en vain) que je dois mixer l'operateur ANY avec une condition à base de OVERLAPS mais pas moyen de sortir un truc qui fonctionne...
quelqu'un a-t-il une idée ?
ps : désolé de sortir un tel casse-tête chinois un jour de vacance, mais je travaille !
Partager