Comment remonter dans la hiérarchie pour afficher la bonne valeur ?
venoom
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour tout le monde,
Je vais faire de mon mieux pour que vous puissiez me comprendre car le sujet est pas simple.
contexte :
j'ai une table CUSTOMER
Cette table comporte plusieurs colonnes dont 3 sur lesquelles je dois me baser, à savoir :
customer_code | customer_parent | customer_payer
Les payeurs, qui sont en bas de la hiérarchie, sont rattaché à un parent, qu'on appel les demandeurs. les demandeurs sont un niveau au dessus des payeurs, logique.
exemple d'un payeur :
customer_code | customer_parent | customer_payer
990 | 991 | 990
les demandeurs, eux, peuvent avoir un autre demandeur au dessus d'eux ou pas du tout
par exemple lorsqu'ils ont personne au dessus :
customer_code | customer_parent | customer_payer
991 | | 990
et s'il ont un autre demandeur au dessus et bien dans customer_parent, on aura le code du demandeur qui sera au dessus dans la hiérarchie etc etc
Maintenant voici la problématique :
certains payeurs devraient avoir un parent, mais la table n'affiche rien... donc j'ai fais une requête SQL qui permettait de les rattacher au bon parent.
Mais certains payeurs, on plusieurs parent... et en faite il faudrait que j'arrive a remonter encore une fois dans la hiérarchie pour pouvoir lui attribuer le bon parent.
par exemple :
le payeur 800 pourrait avoir plusieurs parent 801, 802 et 803, et ces trois parents pourraient avoir un parent en commun, au dessus dans la hiérarchie, le 700 et c'est celui ci qu'il faudrait donc rattacher au payeur 800.
je ne sais pas si je me suis fais comprendre, mais en gros remonter dans la hiérarchie, jusqu'à se qu'il n'y ai plus qu'un parent et le rattacher au payeur. Plutôt que de lui en donner un au hasard parmi les 3 premier de la hiérarchie.
Je vais faire de mon mieux pour que vous puissiez me comprendre car le sujet est pas simple.
contexte :
j'ai une table CUSTOMER
Cette table comporte plusieurs colonnes dont 3 sur lesquelles je dois me baser, à savoir :
customer_code | customer_parent | customer_payer
Les payeurs, qui sont en bas de la hiérarchie, sont rattaché à un parent, qu'on appel les demandeurs. les demandeurs sont un niveau au dessus des payeurs, logique.
exemple d'un payeur :
customer_code | customer_parent | customer_payer
990 | 991 | 990
les demandeurs, eux, peuvent avoir un autre demandeur au dessus d'eux ou pas du tout
par exemple lorsqu'ils ont personne au dessus :
customer_code | customer_parent | customer_payer
991 | | 990
et s'il ont un autre demandeur au dessus et bien dans customer_parent, on aura le code du demandeur qui sera au dessus dans la hiérarchie etc etc
Maintenant voici la problématique :
certains payeurs devraient avoir un parent, mais la table n'affiche rien... donc j'ai fais une requête SQL qui permettait de les rattacher au bon parent.
Mais certains payeurs, on plusieurs parent... et en faite il faudrait que j'arrive a remonter encore une fois dans la hiérarchie pour pouvoir lui attribuer le bon parent.
par exemple :
le payeur 800 pourrait avoir plusieurs parent 801, 802 et 803, et ces trois parents pourraient avoir un parent en commun, au dessus dans la hiérarchie, le 700 et c'est celui ci qu'il faudrait donc rattacher au payeur 800.
je ne sais pas si je me suis fais comprendre, mais en gros remonter dans la hiérarchie, jusqu'à se qu'il n'y ai plus qu'un parent et le rattacher au payeur. Plutôt que de lui en donner un au hasard parmi les 3 premier de la hiérarchie.
A voir également:
- Comment remonter dans la hiérarchie pour afficher la bonne valeur ?
- Afficher appdata - Guide
- Word afficher les commentaires dans la marge - Guide
- Afficher calendrier outlook dans google agenda - Guide
- Afficher la corbeille - Guide
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. - Forum VB / VBA
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
à quoi sert la colonne customer_payer?
peux-tu donner le contenu de tes tables en fonction de ton exemple? bien sûr le contenu au départ, et celui que tu aimerais avoir après ta requête.
à quoi sert la colonne customer_payer?
peux-tu donner le contenu de tes tables en fonction de ton exemple? bien sûr le contenu au départ, et celui que tu aimerais avoir après ta requête.
customer_payer sont les magasin, particulier etc qui paye, et les demandeur son les groupe magasin, pour résumer, qui décide quel magasin, donc payeur, doit payer.
dans la table tu as plusieurs colonnes, mais celles qui m’intéresse et que je veux utiliser pour faire ma hiérarchie sont :
customer_code | customer_parent | customer_payer
imaginons le client payeur 900 n'a qu'un demandeur 800, on aurai pour le client en question :
customer_code | customer_parent | customer_payer
900 (code Payeur) | 800 (sa hierarchie n+1) | 900 (puisqu'on est sur la ligne du payeur donc logique qu'on retrouve son code aussi ici)
mais imaginons qu'un payeur 900 a plusieurs demandeurs 800, 801, 802, lequel choisir dans se cas ? et bien c'est la qu'il faudrait remonter encore d'un niveau dans la hiérarchie et récupérer le customer_parent, qu'ils auront en commun, de ces trois demandeurs et le mettre dans le customer_parent du client 900
exemple :
N+2 : customer_code | customer_parent | customer_payer
802 700
801 700
800 700
N+1 : customer_code | customer_parent | customer_payer
802 900
801 900
800 900
Client payeur : customer_code | customer_parent | customer_payer
900 700 900
en gros aller chercher la hierarchie n+2 pour récupérer le customer_parent que les trois N+2 ont en commun pour aller le mettre dans customer_parent du client payeur
merci d'avance pour vos réponses
N+2 : customer_code | customer_parent | customer_payer
802 (customer_code) 700 (customer_parent)
801 700
800 700
N+1 : customer_code | customer_parent | customer_payer
802 (customer_parent) 900 (customer_payer )
801 900
800 900
*
tu n'as pas donné d'exemple avant/après, comme j'ai demandé.
tu réexpliques ce que tu avais expliqué au début, sans être plus précis ni plus concret. inutile de donner plus d'explications, montre simplement un exemple du contenu de ta table avant le travail et du contenu après le travail.