Question à la con SQL

jdaviaud Messages postés 151 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 8 octobre 2013 - 25 févr. 2003 à 11:41
Gemax Messages postés 1 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 28 février 2003 - 28 févr. 2003 à 21:53
Salut à tous

J'ai un colonne dans ma base de donnée composée principalement de références sous la forme A001215, A001216, A001217 ... mais egalement d'autres qui ne commencent pas par A00.

Ce que je veux, c connaitre le dernier A00 utilisé pour l'incrémenter pour un nouvel enregistrement. donc j'ai essayé les methodes suivantes :

- SELECT GREATEST('CHAMP') FROM FARTICL WHERE CHAMP LIKE 'A0%' => Erreur 500
- SELECT count(*) FROM FARTICL WHERE CDARL LIKE 'A0%'
=> Me donne pas la bonne valeur puisqu'il y a des "trous" dans la liste

- SELECT MAX('CDARL') FROM FARTICL WHERE CDARL LIKE 'A0%' => Erreur 500

quelqu'un aurait une idée pour me sauver la vie ?

6 réponses

jdaviaud Messages postés 151 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 8 octobre 2013
25 févr. 2003 à 14:06
J'ai réussi à connaitre le nombre d'enregistrements commencant par A0 mais maintenant que je sais par ex que j'ai 6000 résultats, ce que je cherche à faire, c'est prendre le dernier résultat et l'incrémenter de 1. Donc comment je peux faire dans mon datareader pour lui dire de regarder la 6000e ligne des résultats ?

d'avance Merci
Julien
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
25 févr. 2003 à 15:12
Arf, je peux pas vraiment t'aider au niveau des sqlDataReader, j'en ai pas encore utilisé pour le moment...
Je sais pas, tu as pas une méthode move(), un peu comme les recordset de VB ?
0
jdaviaud Messages postés 151 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 8 octobre 2013
25 févr. 2003 à 15:20
C'est justement mon problème, je suis entrain de convertir un prog VB en CSharp, et en vb, j'avais utilisé l'objet .move mais je ne trouve aucune équivalence en Csharp :(
0
jdaviaud Messages postés 151 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 8 octobre 2013
25 févr. 2003 à 15:21
C'est justement mon problème, je suis entrain de convertir un prog VB en CSharp, et en vb, j'avais utilisé l'objet .move mais je ne trouve aucune équivalence en Csharp :(
0

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

Posez votre question
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
25 févr. 2003 à 19:11
Devrait fonctionner:
SELECT MAX(CDARL) FROM FARTICL WHERE CDARL LIKE 'A0%';

Au pire:
SELECT CDARL FROM FARTICL WHERE (CDARL LIKE 'A0%' AND ROWNUM = 1) ORDER BY CDARL DESC;

A noter que la deuxième solution est pour Oracle et à mon avis, c'est pas du Oracle que tu fais.

Kaid - kaid.fr.st
0
Gemax Messages postés 1 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 28 février 2003
28 févr. 2003 à 21:53
Salut,
essaie :

SELECT MAX(CAST(RIGHT(CDARL,LEN(CDARL)-1) AS INTERGER)
FROM FARTICL WHERE CDARL LIKE 'A0%'

@ +

:question) Gege
0
Rejoignez-nous