Comparer deux ligne de la meme table sql

Fermé
Amandine - 2 juin 2008 à 11:30
 cyberk - 12 juil. 2010 à 09:29
Bonjour,

comment faire pour comparer deux ligne ds la meme table sql pour apres supprimer les doublons ?

j'ai une table avec 4 champs = id_table, code, date, heure

ce que je veux c comment ecrire la requete qui regarde si dans cette table j'ai deux ou plusieurs ligne où le code et la date sont les memes et dans ce cas je compare l'heure et je supprime la ligne qui a l'heure la plus petite, en d'autre terme je ne garde qu'une seule ligne par code et date et avec l'heure la plus recente

j'espere que j'etais claire

merci
A voir également:

10 réponses

ccar Messages postés 1 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 5 juin 2008 4
5 juin 2008 à 16:23
Peux-tu m'expliquer ta solution, çà m'interésse, merci
4
thecrazyspy, en fait ce qu'il me faut c juste la requete sql pour le code vba j'en ai
juste la requete qui me sort les id des lignes ou les couples (code, date) sont les meme
merci
1
V3n1 Messages postés 294 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 12 décembre 2010 56
2 juin 2008 à 14:14
Il faudrait réussir à crée une boucle.

Ainsi, quand il trouvera deux champs avec les mêmes enregistrements, la requête devra intervenir en supprimant celui où l'enregistrement est le plus récent.
1
thecrazyspy Messages postés 413 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 13 novembre 2015 43
2 juin 2008 à 11:34
vous pouvez faire une requete qui selectione tous de la table ensuite faire un tant que .eof, dans le tant que a chaque passage mettre dans des variable les champs voulu et faire un if qui compare le champs precedent et le champs en cours. c'est peu etre pas trop clair
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
V3n1 Messages postés 294 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 12 décembre 2010 56
2 juin 2008 à 11:35
Salut,

Tu utilise ACCESS ?
Il existe une propriété dans ACCESS pour interdire les doublons ( au cas ou tu ne le savais pas )

Je pense que la meilleure chose à faire, c'est de d'abord crée une requête qui affiche toutes les lignes où le code et la date sont les mêmes. Après, tu crée une liste déroulante dans un formulaire... qui affiche le réusltat de cette requête et tu crée une procédure evenementielle qui supprime les lignes pour lesquelle l'heure est la plus récente ou non.

Si j'ai mal compris, réexplique moi.
0
merci pour vos reponse

thecrazyspy
j'ai pas tres bien compris mais je vais quand meme le tenter

V3n1
en fait je veux tous gerer depuis vba
justement pour la requete qui affiche toutes les lignes où le code et la date sont les mêmes je sais pas comment l'ecrire, quand je dis que le code et la date sont les mêmes ça veux pas dire que code = date mais code ligne i = code ligne j ET date ligne i = date ligne j

merci encore une fois
0
thecrazyspy Messages postés 413 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 13 novembre 2015 43
2 juin 2008 à 11:54
'Requete
Set Rs_mdp = Server.CreateObject("ADODB.Recordset")
Rs_mdp.Open "Select * from users;", Conn

c'est du visual basic, vba je suppose que sais la meme chose
0
thecrazyspy Messages postés 413 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 13 novembre 2015 43
2 juin 2008 à 14:08
juste en faisant un requete c'est pas possible, derrière faut un traitement qui compare les champs entre pour supprimer les doublons, sinon avec un DISTINCT cela supprime les doublons a l'affichage mais pas dans la base de données
0
merci a tous
probleme réglé ;)
0
C'est pas dans l'esprit de ce genre de forum de demander de l'aide , et dès que la réponse est trouvée , de ne pas la laisser pour d'autres ...a la longue ça tue le principe même, dont tu tire aussi partie .
0
Bonjour,

Je voudrais faire la même chose que ce que Amandine a expliqué.
Pourriez-vous me dire ce que vous avez fait exactement pour comparer deux enregistrements?

Merci bien :-)
-2