Bonjour,
Je cherche à associer deux tables un peu comme du géocodage : dans l'une et l'autre j'ai un nom d'opération mais pas toujours écrit pareil donc je cherche un moyen d'associer ces deux champs dans un premier temps de manière la plus automatique possible et ensuite en corrigeant les incohérences.
Je ne sais même pas comment appeler la fonction si elle existe.
Merci de votre aide
Make a Join between the two tables
Load * resident tab1;
join
Load * resident tab2;
In this way you have all the combinations.
Then you have the two original columns and try any correption
Bonjour,
Si ce n'est pas trop confidentiel, n'hésites pas à partager un qvw d'exemple ou des données de test afin que l'on comprenne mieux ton besoin.
Ou montre tes données de départ et ce à quoi tu veux aboutir.
Pour ma part je ne vois pas exactement ce que tu veux faire.
Voilà un peu + d'explications :
J'ai une table (en fait une table SIG) qui liste mes logements sociaux par nom de programme : par exemple : "LA VENTOURESO" ou "BARBIERE (tour)"
J'ai une table issue de données détaillées que j'ai regroupé sur un champ où majoritairement on retrouve ces noms de programme : par exemple : VENTOURESO (sans le LA) ou La barbiére; sachant qu'en plus cette table n'est pas homogène (tout est pas en majuscule, il y a des accents, ...)
Je voudrais arriver à jointer ces 2 tables pour rattacher des données détaillées au point géographique de mon Atlas LLS (mais ça après pas de problème si je suis arrivée à jointer les champs ....
(une sorte de mappage sur des champs qui se ressemblent mais pas tout à fait !)
Est ce que c'est plus clair ?
Merci d'avance
Bonjour
pour rendre cohérent au maximum les chaînes de caractères j'utiliserais la fonction
lower ou upper pour tout mettre en minuscule ou majuscule
ainsi que les fonctions de transformation comme replace, ou match pour remplace les é et è par e, les à par a
la fonction purgechar pour supprimer les caractères tels que blanc, ( ) , ; * % ....
Ex:
LOAD
Champ as champ_original
lower(purgechar(champ, '(),/% ') as champ_modifié,
autonumber(lower(purgechar(champ, '(),/% ') ) as %champ, (le m^me en clé numérique)
toutes les fonctions sont décrites dans l'aide
bon courage
Christian
En complément de ce qu'a écrit Christian
Il te faut absolument identité des champs, sinon l'association ne se fera pas.
Si tu n'as pas beaucoup de transcodage à faire, tu peux toujours remplacer A par B en faisant:
1) lecture du table de transcodage (de n'importe quoi vers n'importe quoi)
MAPPING LOAD .... 2 champs seulement
tu peux donc stocker dans Excel ou autre (INLINE, table SQL) ce que tu as d'un côté, ce que tu veux de l'autre
2) Utilisation au cours du LOAD définitif de la fonction ApplyMap() qui va prendre le champ 1 pour le transformer en champ 2.
Et si tu as beaucoup de transcodage, la technique de Christian + celle-ci devraient t'aider.
Fabrice
Bonjour,
Si la table A contient les colonnes ID, A1, A2, etc.
Et la table B les colonnes ID, B1, B2, etc.
ID est la colonne commune, même si les données ne sont pas parfaitement égales.
LOAD
ID as ID_Commun,
ID as ID_A,
A1,
etc.
FROM
A;
LOAD
ID as ID_Commun,
ID as ID_B,
B1,
etc.
FROM
B;
Dans une feuille, ajouter des sélections pour les champs ID_A et ID_B.
En faisant "Sélectionner tout" sur ID_A, vous verrez grâce à l'associativité les valeurs non-associées dans ID_B, en gris. Vous pouvez exporter ces valeurs dans Excel ou faire un copier/coller des valeurs grises (bouton droit).
En faisant "Sélectionner tout" sur ID_B, vous verrez grâce à l'associativité les valeurs non-associées dans ID_A, en gris.
Vous pouvez exporter ces valeurs dans Excel ou faire un copier/coller des valeurs grises (bouton droit).
Ceci vous aidera à créer la table de mapping (transcodage) proposée dans les autres messages.
Brice