UPDATE ... WHERE l'indice est le plus grand [Résolu]

Signaler
Messages postés
30
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
6 juillet 2005
-
Messages postés
30
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
6 juillet 2005
-
bonjour tout le monde, [APIwin32 sous visualc++]

voila j'ai inséré dans la table SPB1502AL les champs P95,P96,P97.wsprintf(szBuffer, "UPDATE SPB1502AL SET P95 '%s', P96 '%s', P97 '%s' WHERE Indice = 1", szP95, szP96, szP97);
le souci que j'ai, c'est que je ne veux pas les insérer toujours où l'indice 1 (WHERE Indice 1) mais où l'indice est toujours le plus grand.
c'est à dire qu'au fur et à mesure des enregistrements, l'indice s'incrémente de 1 et je voudrais faire cet UPDATE toujours sur le dernier enregistrement.

merci d'avance

3 réponses

Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Utilise une requête imbriquée:



UPDATE SPB1502AL SET P95 '%s', P96 '%s', P97 '%s' WHERE Indice = (SELECT MAX(
Indice
) FROM
SPB1502AL);



Kaid - kaid.fr.st
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Je sais pas si on peut le faire directement par la requete, mais tu
peux aussi utiliser une variable nbEnregistrements pour retenir ce
nombre:



int nbEnregistrements = 1;

...

wsprintf(szBuffer, "UPDATE SPB1502AL SET P95 '%s', P96 '%s', P97
'%s' WHERE Indice = %d", szP95, szP96, szP97, nbEnregistrements);

nbEnregistrements++;



A chaque update tu incrémente nbEnregistrements
Messages postés
30
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
6 juillet 2005

merci beaucoup pour vos réponses différentes, je garde celle de vecchio dans un coin mais ici c'est celle de kaid que j'ai utilisé, CA MARCHE!!!

ciao romy