REQUETE SQL (TRES URGENT)

Résolu
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009 - 26 juil. 2007 à 09:57
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 - 26 juil. 2007 à 14:04
Bonjour,

J'ai besoin de vous pour résoudre un petit problème

Voilà je souhaite comparer 2 enregistrements à la fois en fonction de leur N° operation depotage, de la Date et de l'heure

Voici la table au départ qui se nomme tb_Resultat_1 que je veux comparer avec elle même

N°operation | uds Source | Date | Heure | lot | nip | N° operation depotage
1000 | ss21 | 18/01/2007 | 09h00 | 90436-10 | 00237 | 80
1000 | ss24 | 18/01/2007 | 09h00 | 90443-11 | 00237 | 100
1010 | ss21 | 18/01/2007 | 10h30 | 90436-10 | 00237 | 80
1010 | ss24 | 18/01/2007 | 10h30 | 90443-11 | 00237 | 100
1020 | ss21 | 18/01/2007 | 13h30 | 90436-11 | 00237 | 104
1020 | ss24 | 18/01/2007 | 13h30 | 90443-11 | 00237 | 100
1035 | ss21 | 18/01/2007 | 15h00 | 90436-11 | 00237 | 104
1035 | ss24 | 18/01/2007 | 15h00 | 90443-11 | 00237 | 100

Et voici le résultat dans une autre table qui se nomme tb_Resultat
N°operation | uds Source | Date | Heure | lot | nip | N° operation depotage
1000 | ss21 | 18/01/2007 | 09h00 | 90436-10 | 00237 | 80
1000 | ss24 | 18/01/2007 | 09h00 | 90443-11 | 00237 | 100
1020 | ss21 | 18/01/2007 | 13h30 | 90436-11 | 00237 | 104

Si quelqu'un peut m'aider c'est avec plaisir

7 réponses

cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
26 juil. 2007 à 10:55
Il faut que tu filtres dans un premier temps par les données du champ N° operation depotage  (voir ORDER BY).

Ensuite, a la premiere itération tu sauvegardes les valeurs des champs que tu veux comparer et ensuite
a chaque itération, si une valeur est plus petite, tu modifies la valeur de référence.
A la fin, Tu auras toutes les plus petites valeurs des 3 champs en questions et tu n'auras plus qu'a les ecrire dans l'autre table.

Bien sur tu dois t'arreter si tu change de N° operation depotage.

Ca doit pouvoir se faire par requete mais c'est trop chaud pour moi. Mais par recordset, c'est pas tres dur, suffit de trouver un algo adapté.
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 juil. 2007 à 10:00
en fait, tu prends quoi ?

les enregistrements qui ont la date/heure la plus petite, pour chaque depotage ?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 juil. 2007 à 10:02
C'est très très urgent ? Ben tu aurais mieux fait de rechercher un minimum dans le forum ou dans les sources, tu aurais trouvé plus vite...

Un petit select, avec une clause WHERE sur les 3 colonnes que tu veux, et hop le tour est joué.
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
26 juil. 2007 à 10:15
Ok mais la tu nous demandes de tout faire la. Tu peux utiliser ton recordset RS1 pour faire ca.
0

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

Posez votre question
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009
26 juil. 2007 à 10:18
comment utiliser le recordset RS1 pour résoudre ce problème
0
cs_monaco63 Messages postés 76 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 juin 2009
26 juil. 2007 à 10:19
Je prend pour chaque du N° operation depotage la date et heure la plus ancienne
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
26 juil. 2007 à 14:04
Salut,

tu peux peut-être tester un truc dans ce genre :
select * from tb_resultat1 order by N° operation depotage,Date, Heure
Cette ligne permett de classer tous les champs de ta table par le N° d'opération , puis par la Date,puis par l'heure.


La clause limit n'existant pas en vb, tu peux sauvegarder le N° d'opération précédent quand tu parcours tes enregistrements et le comparer avec l'actuel, si il est égal tu vas à l'enregistrement suivant, sinon tu inscris ta ligne dans ta nouvelle table.
0
Rejoignez-nous