Bonjour,

J'ai une table avec MySQL qui liste les utilisateurs avec leur numéro de telephone et une date debut et fin de leur activité. Un numéro de téléphone peut être attribué à différents utilisateurs dans le temps tant que les périodes ne se chevauchent pas.

Le problème est qu'il existe dans cette table des numéros de téléphone attribués à plusieurs utilisateurs sur des périodes se chevauchant.

Comment puis-je éliminer de ma table les enregistrements pour lesquels un numéro de téléphone est défini sur des intervalles se chevauchant ?
Il n'y a qu'un enregistrement par utilisateur et un utilisateur ne peut avoir qu'un numéro de téléphone à une date donnée.

J'essaie sans succès de faire quelque chose avec la fonction "overlaps" du style :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
/* Recherche des numéros tel définis sur plusieurs intervalles et insertion dans une table temporaire */
 
INSERT INTO table_temporaire
SELECT numtel, login, date_debut, date_fin
FROM utilisateur
GROUP BY numtel
HAVING COUNT(*) > 1
ORDER BY numtel
-> jusque là, ça va bien !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
/* Recherche des intervalles se chevauchant et rejet dans une table */
 
INSERT INTO table_rejet
SELECT numtel, login, date_debut, date_fin
FROM table_temporaire
GROUP BY numtel
WHERE (date_debut, date_fin) 
OVERLAPS ( date_debut, date_fin)
-> là ça va mal ....


Qu'en pensez-vous ?
Merci de votre aide !