|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
Bonjour,
J'ai un champ dans une colonne A qui contient 6 caractères, les deux premiers caractère de la colonne servent de référence. Besoin : Mis à jour de la colonne B en fonction de la colonne A en fonction des critères ci-dessous : -1) Si la valeur d'une ligne de la colonne A se termine par 0000 je met 1 dans la colonne B -2) Si la valeur d'une ligne de la colonne A se termine par 000 je met 2 dans la colonne B -3) Si la valeur d'une ligne de la colonne A se termine par 00 je met 3 dans la colonne B -4) Cas particulier : Si pour une valeur de la colonne A il n'existe pas de valeurs avec cas dans B à 2 je met 3 à la place de 2 Exemple de résultat : Code :
Code :
|
||||
|
|
00
|
|
|
#2 | ||||
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Bonjour teuzadur,
Que veux-tu dire par : Citation:
Citation:
Est-ce que cela signifie "Si la valeur d'une ligne de la colonne A se termine par 000 et qu'il y a 3 en 3ème position je met 3 dans la colonne B" ?
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
||||
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
C'est un cas un peu particulier pour lequel il n'existe pas de valeur dans la colonne A ou B est à 3. Donc s'il existe un cas dans la colonne A ou B est à 2 on met directement 3.
Algo : Au départ Pour 210000 se termine par '0000' on met 1 dans B Pour 213000 se termine par '000' on met 2 dans B, comme il n'existe pas de cas 213X00 (où X différent de 0) dans la colonne A on met directement 3 dans B. J'espère que c'est plus clair. Parfois par la parole c'est bcp plus simple que par l'écrit. |
|
|
00
|
|
|
#4 | |
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Désolé, ce n'est pas beaucoup plus clair pour moi !
quelle est la règle de gestion qui te dit ? Citation:
il faudrait alors faire un traitement en 2 temps : 1) identifier les valeurs "impossibles" et y mettre un flag OK / NOK 2) tester ensuite en fonction du nombre de 0 à droite et du flag
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
|
00
|
|
|
#5 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
Mince, pourtant en soit c'est super simple. Ma requête dans un post précédent répond presque au problème sauf qu'il me manque le traitement du cas 4)
La réponse à ta question <quelle est la règle de gestion qui te dit ?> Code :
Les critères 1) 2) existent, comme 3) absent on applique le cas 4) soit mettre la valeur 3 à la place de la valeur 2 dans la colonne B. 4) Cas particulier : Si pour une valeur de la colonne A il n'existe pas de critères correspondant à 3) dans B je met 3 à la place de 2. |
||
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Je n'ai pas du avoir le déclic, car quand je vois 213000 dans A, je devrais bien mettre 2 dans B.
Alors que dans ton cas, pour la valeur 213000 tu voudrait mettre 3 dans B. Quelle est donc la règle de gestion qui permet de différencier 223000 (-> b=2) de 213000 (-> b=3) ?
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
On s'approche car tu as tout dit :
car quand je vois 213000 dans A, je devrais bien mettre 2 dans B. ->Oui Alors que dans ton cas, pour la valeur 213000 tu voudrait mettre 3 dans B. ->Oui. Règle de gestion : il n'existe pas de cas 3) pour cet exemple donc je force la valeur 3 à la place de la valeur 2 dans B. Quelle est donc la règle de gestion qui permet de différencier 223000 (-> b=2) de 213000 (-> b=3) ? Réponse au-dessus. Dans le premier exemple j'ai un regroupement de deux lignes, par contre dans le deuxième exemple j'ai un regroupement de trois lignes. Dans le deuxième exemple j'ai un cas 3) alors que dans le premier NON. C'est plus clair? |
|
|
00
|
|
|
#8 | ||
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Bonjour Teuzadur,
Non, ce n'est pas plus clair, car tu es en train de nous communiquer les informations au compte-goutte. tu nous dis : Citation:
Maintenant, je m'aperçois de mon côté que je n'avais pas intégré que : Citation:
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
||
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
Tout est dans les posts précédents, je ne peux pas être plus clair malheureusement. Sans être indélicat j'ai l'impression que tu ne lis pas correctement les posts.
|
|
|
00
|
|
|
#10 |
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
alors, je ne peux rien pour toi malheureusement;
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
Je suis preneur de toute aide si quelqu'un peut m'aider. Si vous avez des questions ou si je ne suis pas clair dites moi si je peux aider à la compréhension.
|
|
|
00
|
|
|
#12 | |||||||||||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Teuzadur et Dumas.blr,
Citation:
Ta demande est une (mini) usine à gaz, et je me demande s'il n'y a pas quelque chose à faire en amont. Mais bon... analysons ton besoin initial. A mon avis, il faut passer par plusieurs étapes, avec des tables temporaires. Donc, à partir de ton exemple : Code :
Code :
Il me semble comprendre que la seule raison pour laquelle ont ColonneB=3 est que 213 et 293 n'existe pas. ***** A contrario, la raison pour laquelleont ColonneB=2 est que 223x et 383x existe. ***** Si, jusque là, tout est juste... suggestion : Requête R1 qui sépare les premiers chiffres<> 0 des chiffres=0, qui donnera : Code :
Code :
Code :
En règle générale, la tendance à vouloir tout régler en une seule requête est souvent dommageable : le découpage du travail en sous-tâches est souvent plus efficace.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|||||||||||
|
|
00
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
Bonjour,
J'ai trouvé une solution à mon problème directement dans le code vb.net en passant par plusieurs requêtes. Richard ta réponse ne correspond pas à mon besoin, c'est beaucoup plus simple, désolé pour le manque de clarté dans mes explications. Merci de votre aide. Cordialement, |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com