Question à la con SQL

Signaler
Messages postés
151
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2013
-
Messages postés
1
Date d'inscription
vendredi 28 février 2003
Statut
Membre
Dernière intervention
28 février 2003
-
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

Messages postés
151
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2013

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
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
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 ?
Messages postés
151
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2013

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 :(
Messages postés
151
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2013

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 :(
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

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
Messages postés
1
Date d'inscription
vendredi 28 février 2003
Statut
Membre
Dernière intervention
28 février 2003

Salut,
essaie :

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

@ +

:question) Gege