#1 Tue 14 September 2021 09:40
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
Tout mettre sur une ligne
Bonjour,
Je fais des jointures avec le feature joiner entre des tables d'une ligne à très haute tension.
Par exemple, sur le tronçon 1 de cette ligne, j'ai deux fichiers :
-tronçon 1 avec un champ parcelles
-tronçon 1 avec un champs ENEDIS
Lorsque je fais le feature joiner entre ces deux tables, cela me crée deux lignes. Or je voudrais que les infos sur les parcelles et sur ENEDIS soient sur la même ligne.
Comment faire?
Hors ligne
#2 Tue 14 September 2021 14:10
- SRapenne
- Participant occasionnel
- Date d'inscription: 2 Feb 2020
- Messages: 28
Re: Tout mettre sur une ligne
Bonjour,
pour faire une jointure entre 2 tables, il faut un champ commun qui doit être renseigné dans la section "Jointure" du featureJoiner, si cette condition est bien remplie, il n'y a aucune raison d'avoir 2 lignes en sortie
Serge
Hors ligne
#3 Wed 15 September 2021 11:33
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
Re: Tout mettre sur une ligne
il faut un champ commun qui doit être renseigné dans la section "Jointure" du featureJoiner
j'avais déjà fait la jointure sur le champ commun. Par contre j'ai utilisé le transformer feature merger et cela fonctionne.
Hors ligne
#4 Wed 15 September 2021 14:11
- SRapenne
- Participant occasionnel
- Date d'inscription: 2 Feb 2020
- Messages: 28
Re: Tout mettre sur une ligne
c'est très étrange, je fais des jointures quasi quotidiennement et je n'ai jamais rencontré ce cas de figure.
Il doit y avoir un truc soit dans tes données d'entrée soit dans le paramétrage du "Joiner"
Serge
Hors ligne
#5 Wed 15 September 2021 15:45
- Benoit D
- Participant assidu
- Date d'inscription: 17 Jul 2018
- Messages: 150
Re: Tout mettre sur une ligne
Ce serait bien un comportement de FeatureJoiner si on en croit l'aide de ce transformer
Join Behavior
A Joined feature is produced each time a Left feature is matched to a Right feature through its keys. The number of output features produced will depend on whether or not multiple Left and Right features match.
The type of join is determined by the nature of the data used (it is not a parameter). Any of these types of joins may be produced by any of the Join Modes (Inner, Left, or Full).
[...]
M:N Many to Many: If multiple Left features match multiple Right features (for example a number of addresses match to a number of records for electrical power outages) this is a M:N (many-to-many) match and produces a Joined feature for every match that occurs.
10 Left match 10 Right:
100 Joined Features output*
*When all features have identical key values - all Left match all Right.
FeatureMerger ne se comporte pas pareil.
Hors ligne
#6 Wed 15 September 2021 17:05
- SRapenne
- Participant occasionnel
- Date d'inscription: 2 Feb 2020
- Messages: 28
Re: Tout mettre sur une ligne
Effectivement si les tables contiennent plusieurs fois l'identifiant de jointure ce résultat est normal et attendu.
Mais quoi qu'il en soit, je ne comprend comment le comportement décrit par le posteur initial est possible puisque ça description semble indiquer que la jointure n'est pas réalisé et qu'il obtient en sortie une fusion de ces 2 tables c'est du moins comme ça que je comprend
Lorsque je fais le feature joiner entre ces deux tables, cela me crée deux lignes. Or je voudrais que les infos sur les parcelles et sur ENEDIS soient sur la même ligne.
Il est toujours possible de faire précéder le FeatureJoiner de "duplicateFilter", un par source de données pour se retrouver avec une jointure 1:1
Serge
Dernière modification par SRapenne (Wed 15 September 2021 17:09)
Hors ligne
#7 Wed 15 September 2021 18:24
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
Re: Tout mettre sur une ligne
Mais quoi qu'il en soit, je ne comprend comment le comportement décrit par le posteur initial est possible puisque ça description semble indiquer que la jointure n'est pas réalisé et qu'il obtient en sortie une fusion de ces 2 tables c'est du moins comme ça que je comprend
En fait j'ai un tronçon A qui possède 4 informations d'adresses, donc 4 lignes.
Je souhaite joindre un même tronçon A qui possède un réseau électrique (valeur "croisement"), donc une ligne.
Même avec le Feature merger cela ne fonctionne pas.
Je joins le tronçon A avec les informations d'adresses et le tronçon A avec l'information du type électrique, j'ai 4 lignes en résultat. Mais l'information du réseau électrique est répétée autant de fois qu'il y a de lignes renseignées sur le champ adresses.
Comme ceci :
Tronçon Adresse Réseau électrique
A Rue... Croisement
A Rue... Croisement
A Rue... Croisement
A Rue... Croisement
Or, je voudrais ceci :
Tronçon Adresse Réseau électrique
A Rue... Croisement
A Rue...
A Rue...
A Rue...
Comment faire?
Merci.
Hors ligne
#8 Wed 15 September 2021 18:47
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
Re: Tout mettre sur une ligne
Merci à Serge pour son duplicatefilter. Avec ce transformer, j'ai fait la jointure sur unique. Quant au duplicate je l'ai connecté plus loin dans le traitement sans jointure et cela fonctionne. Au final, j'ai bien l'info sur 4 lignes avec 4 adresses et 1 réseau électrique.
Hors ligne