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
1
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
Membre
Dernière intervention
22 août 2010
10
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