Bonjour,
J'ai regardé sur le forum et je n'ai pas trouvé de réponse ... donc je suis preneur
J'ai une table (nommons la "TABLE1" ) contenant :
- un identifiant NON unique (toutes les lignes avec le même identifiant correspondent à la même donnée à une période différente)
- un début de période
- une fin de période
- N champs de données.
Petit exemple
Identifiant debut fin champ 1 champ 2 1 01/01/2012 31/12/2012 A A 1 01/01/2013 30/06/2013 A B 2 01/01/2012 30/06/2014 C D
Quand on me demande les données à une date pour un identifiant, je vais regarder la ligne correspondant à mon identifiant et je vais chercher la ligne pour laquelle le debut de période est avant ma date et la fin de période est apres ma date.
Ex : que vaut champ 1 , pour l'identifiant 1 au 30/09/2012? ==> réponse "A"
Seulement voila : suite à des erreurs des utilisateurs, j'ai des milliers de "doublons" et je souhaiterais les supprimer...
Techniquement les données ne sont pas doublons au sens propre car les périodes sont différentes mais je souhaiterais "simplifier les intervalles"
en gros j'ai :
Les 4 premieres lignes sont les mêmes et donc on pourrait remplacer tout ca par :
Identifiant debut fin champ 1 champ 2 1 01/01/2012 01/01/2012 A A 1 02/01/2012 02/01/2012 A A 1 03/01/2012 05/01/2012 A A 1 06/01/2012 10/01/2012 A A 1 11/01/2012 20/01/2012 B A
Identifiant debut fin champ 1 champ 2 1 01/01/2012 10/01/2012 A A 1 11/01/2012 20/01/2012 B A
je cherche donc un moyen :
- d'identifier les lignes qui ont les mêmes valeurs partout à l'exception des champs "début" et "fin"
- de supprimer ces doublons
- de créer une ligne identique aux lignes supprimées avec début = min des dates de début et fin = max date de fin
le tout en prenant en compte qu'en plein milieu je peux avoir des lignes différentes.... (ce n'est pas parce que 2011 et 2014 sont identique que ma période doit aller de 2011 à 2014 , 2012 et 2013 peuvent être différents ....)
Des pistes ? des idées ?( bon dans l'idéal un script tout faitmais bon, je saurais adapter et chercher)
Partager