Codification Solution

Signaler
-
 Profil bloqué -
Bonjour,

je suis entrain de réaliser une application de gestion avec delphi et j'utilise sql pour accéder a mes données

et je veu faire un codification sur la colonne Code_Client(string)

pour avoire le résultat :

001
002
003


est ce que il ya une requête sql qui a comme résultat le numero qui n'existe pas,

je compare les numéros depuis 0 - 100000 et si par exemple 5 n'existe pas alors

le résultat est : 5

Par exemple pour bien comprendre :

http://www.askdesigngroup.com/exemple1.jpg
http://www.askdesigngroup.com/exemple2.jpg
http://www.askdesigngroup.com/exemple3.jpg

6 réponses

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
18
Salut,

tu peux faire une table contenant tous les codes valides et faire un "not exists" sur le champ code de la table client

par exemple en sql server,

-- la table client avec 2 codes
declare @CLI table(codeClient varchar(10))
insert into @CLI values('CTL001')
insert into @CLI values('CTL003')

-- la table des codes valides de 1 à 4
declare @CODEVALIDE table(codeValide int)
insert into @CODEVALIDE values(1)
insert into @CODEVALIDE values(2)
insert into @CODEVALIDE values(3)
insert into @CODEVALIDE values(4)

-- liste les codes qui n'existent pas encore (numériques et formatés)
select 
	COD_NUMERIC = codeValide,
	COD_FORMAT = 'CTL'+replicate('0',3-LEN(CAST(codeValide as varchar)))+CAST(codeValide as varchar)
from @CODEVALIDE 
where not exists(select 1 from @CLI where cast(RIGHT(codeClient,3) as int) = codeValide)
order by codeValide

-- Renvoi 
/*
	COD_NUMERIC	COD_FORMAT
	2		CTL002
	4		CTL004
*/



bye...
Messages postés
28889
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 mai 2020
328
Bonjour,

est ce que il ya une requête sql qui a comme résultat le numero qui n'existe pas

Ben tout dépend..

Lorsque l'on parle de requête... on parle de Base de données... de tables... de champs....

Sans plus d'informations de ta part cela risque d'être difficile de te répondre..

Mais là comme ça.. je penserai à : WHERE .... NOT IN(...,...,...)

Messages postés
11
Date d'inscription
lundi 7 juillet 2014
Statut
Membre
Dernière intervention
15 juillet 2014

Bonjour BazBazus,

Le langage SQL est un langage de requetage, pas de programmation. Le SQL il faut être précis si tu veux avoir le bon résultat, la logique de ce que tu demandes me pousse a te dire que tu veux quelque chose de bancal, à chaque fois qu'une nouvelle donnée sera insérée il te faudra la rajouter dans ton NOT IN comme Jordane la si justement remarqué. Essaye de nous en dire plus sur la façon dont tu as organisé ta table, il doit y avoir une autre solution.

Bonne journée,

Cordialement
oké voila pour bien comprendre pour un nouveau enregistrement ( nouveau client )

dans le edit Code : il faut generer le code CLT001
voila :
http://www.askdesigngroup.com/Codification.jpg

est ce que il ya une requête sql qui a comme résultat le numero qui n'existe pas dans la base de donnes
CLT001
CLT003

alors elle donne comme resultat : CLT002
Messages postés
28889
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 mai 2020
328
est ce que il ya une requête sql qui a comme résultat le numero qui n'existe pas dans la base de donnes

NON.

Comment veux tu que la BDD puisse deviner les numéros manquants ?... elle se base sur quoi pour le savoir...
Tu ne peux que COMPARER éventuellement deux tables pour trouver les champs manquants dans l'une d'elle....
Tu peux vérifier si un client EXISTE dans la Table
Tu peux vérifier si un client N'EXISTE PAS dans la table
Mais tu ne peux pas, via une requête, avoir la liste des CLIENTS qui N'EXISTENT PAS.



merci yann_lo_san :) :)