IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

informer

Ma Minute M : Création d'1 table par fusion de 2 tables avec colonnes différentes et même clé multicolonnes

Noter ce billet
par , 14/04/2025 à 08h35 (567 Affichages)
Objectif
Création d'une table qui combine les colonnes de 2 tables i.e. ajoute pour PK(A,B,C) les colonnes [R1...R8] avec Table1 (A,B,C, R1,R2, R3,R4) et Table2 (A,B,C, R5,R6, R7,R8)

A B C R1 R2 R3 R4 id R5 R6 R7 R8 id2
1 asd 0.6 0.23 0.51 0.33 0.B56 1asd0.6 0.45 0.25 0.11 0.36 1asd0.6
2 asd 0.6 ACF BCA FGI LMN 2asd0.6 DSA FDG RER LUN 2asd0.6
3 asd 0.6 1 1 null 1 3asd0.6 1 null null 1 3asd0.6
1 ghi 0.1 0.11 0.21 0.43 0.96 1ghi0.1 0.91 0.43 0.13 0.94 1ghi0.1
2 ghi 0.1 DCM DHJ TRO PQR 2ghi0.1 WED QYT SAO LAP 2ghi0.1
3 ghi 0.1 1 1 null 1 3ghi0.1 1 1 1 null 3ghi0.1
1 hkl 0.2 0.23 0.51 0.33 0.56 1hkl0.2 0.49 0.78 0.61 0.56 1hkl0.2
2 hkl 0.2 ARP VBA GFI WQE 2hkl0.2 MAG ROR KAL OLS 2hkl0.2
3 hkl 0.2 1 1 null 1 3hkl0.2 1 null null 1 3hkl0.2

Source
Fichier Excel avec 2 onglets DataTest _MergeCol.xlsx
  • Chaque onglet correspondant à une table.
  • Chaque table a une clé primaire (CP) multi-colonnes = PK(A,B,C)
  • Il y a correspondance des CP dans les 2 tables PKt1(A,B,C) inner join Kt2(A,B,C)


A B C R1 R2 R3 R4 id
1 asd 0.6 0.23 0.51 0.33 0.56 1asd0.6
2 asd 0.6 ACF BCA FGI LMN 2asd0.6
3 asd 0.6 1 1 null 1 3asd0.6
1 ghi 0.1 0.11 0.21 0.43 0.96 1ghi0.1
2 ghi 0.1 DCM DHJ TRO PQR 2ghi0.1
3 ghi 0.1 1 1 null 1 3ghi0.1
1 hkl 0.2 0.23 0.51 0.33 0.56 1hkl0.2
2 hkl 0.2 ARP VBA GFI WQE 2hkl0.2
3 hkl 0.2 1 1 null 1 3hkl0.2

A B C R5 R6 R7 R8 id
1 asd 0.6 0.45 0.25 0.11 0.36 1asd0.6
2 asd 0.6 DSA FDG RER LUN 2asd0.6
3 asd 0.6 1 null null 1 3asd0.6
1 ghi 0.1 0.91 0.43 0.13 0.94 1ghi0.1
2 ghi 0.1 WED QYT SAO LAP 2ghi0.1
3 ghi 0.1 1 1 1 null 3ghi0.1
1 hkl 0.2 0.49 0.78 0.61 0.56 1hkl0.2
2 hkl 0.2 MAG ROR KAL OLS 2hkl0.2
3 hkl 0.2 1 null null 1 3hkl0.2

Contexte
Chargement des 2 tables dans PWBI
Ouverture de PWQY

Opérations
Sélectionner Home -> Merge Quries -> Merge Queries As New (Création d'une nouvelle table)

Nom : Merge1.png
Affichages : 23
Taille : 90,8 Ko

Ouverture d'une 2ième fenêtre intitulée MERGE avec la 1ère liste déroulante initialisée avec le Table1
Sélectionner dans la 2ième liste déroulante Table2
Nom : Merge2.png
Affichages : 18
Taille : 59,5 Ko

On remarque
  • des indexes de 1 à 3 sur les colonnes A,B, C => A1, B2 , C3
  • La sélection de l'option = Inner (Only matching Rows) dans Join Kind


Les indexes
indiquent les colonnes composant la clé primaire. Pour ajouter un champ dans la clé primaire, Cliquer sur la colonne en appuyant sur CTRL.
Effectuer la sélection dans le même ordre sur les 2 tables => Table1 ( A1, B2 , C3) & Table2 ( A1, B2 , C3)

Join Kind
L'option choisie indique le type de jointure. Ici Inner (Only matching Rows) car il faut une correspondance stricte entre les clés sur Table1 & Table2
L'option sélectionnée est déterminante, donc la maîtrise du concept de jointure est essentielle pour obtenir le résultat escompté

On obtient la nouvelle table qui a été renommée DataMerge via le champ Nam


Nom : Merge3.png
Affichages : 17
Taille : 84,8 Ko

Puis cliquer sur l'icône Nom : Merge4.png
Affichages : 16
Taille : 2,7 Ko

Nom : Merge5.png
Affichages : 16
Taille : 59,6 Ko

Les Colonnes de table2 sont préfixées de AddCol2
Nom : Merge6.png
Affichages : 16
Taille : 53,4 Ko

Il faut supprimer le préfixe AddCol2 dans le code généré et pour le champ id ajouté 2 par exemple

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
let
    Source = Table.NestedJoin(Table1, {"A", "B","C"}, Table2, {"A", "B","C"}, "AddCol2", JoinKind.Inner),
    #"Expanded AddCol2" = Table.ExpandTableColumn(Source, "AddCol2", {"R5", "R6", "R7", "R8", "id"}, {"AddCol2.R5", "AddCol2.R6", "AddCol2.R7", "AddCol2.R8", "AddCol2.id"})
in
    #"Expanded AddCol2"

Ce qui donne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
  #"Expanded AddCol2" = Table.ExpandTableColumn(Source, "AddCol2",  {"R5", "R6", "R7", "R8", "id"}, {"R5", "R6",  "R7", "R8", "id2"})
Nom : Merge7.png
Affichages : 18
Taille : 36,0 Ko

C'est maintenant Ta Minute M

Envoyer le billet « Ma Minute M : Création d'1 table par fusion de 2 tables avec colonnes différentes et même clé multicolonnes » dans le blog Viadeo Envoyer le billet « Ma Minute M : Création d'1 table par fusion de 2 tables avec colonnes différentes et même clé multicolonnes » dans le blog Twitter Envoyer le billet « Ma Minute M : Création d'1 table par fusion de 2 tables avec colonnes différentes et même clé multicolonnes » dans le blog Google Envoyer le billet « Ma Minute M : Création d'1 table par fusion de 2 tables avec colonnes différentes et même clé multicolonnes » dans le blog Facebook Envoyer le billet « Ma Minute M : Création d'1 table par fusion de 2 tables avec colonnes différentes et même clé multicolonnes » dans le blog Digg Envoyer le billet « Ma Minute M : Création d'1 table par fusion de 2 tables avec colonnes différentes et même clé multicolonnes » dans le blog Delicious Envoyer le billet « Ma Minute M : Création d'1 table par fusion de 2 tables avec colonnes différentes et même clé multicolonnes » dans le blog MySpace Envoyer le billet « Ma Minute M : Création d'1 table par fusion de 2 tables avec colonnes différentes et même clé multicolonnes » dans le blog Yahoo

Commentaires