Skip to content
Support formation Rapports Power BI
  • Pages
    • Présentation du support
    • Organisation des formations Power BI
    • Ressources pédagogiques
      • Kit pédagogique
      • Références
      • Mise en pratique
        • Exo 1
        • Exo 2
        • Exo 3
        • Exo 4 Parc Auto
        • Exo 5 Vente data
        • Exo 6 EuroDesk
      • Aide à la décision d'une formation courte Power BI
    • Généralités
      • Carte & schéma Power BI
      • Guide de survie
      • Architecture des données [ToDo]
      • Optimisations & bonnes pratiques
      • Présentation de la solution Power BI
        • Le marché des solutions BI
        • A quoi sert Power BI ?
        • Versions & licences
        • Installation
      • Organiser son projet Power BI
      • Microsoft Fabric [WIP]
      • Planification de l’implémentation de Power BI
      • Planification de la migration et du déploiement Power BI
    • 1 | Se connecter aux données
      • Modes de connexion aux données (résumé)
      • Obtenir les données d’un fichier Excel (SharePoint)
      • Obtenir les données d’un fichier CSV/Texte
      • Obtenir les données d'un classeur Google Sheet
      • Créer un Dataflow (Query dans BI Service)
      • Base de données (Azure SQL Server)
      • Récupérer le contenu d'un fichier Zip
      • Récupérer les fichiers d'un site SharePoint
      • OData
      • Tips - retours d'expériences [WIP]
    • 2 | Transformer ses données (Power Query)
      • Pourquoi transformer ses données ? (dépivoter)
      • Transformations
        • Fusionner des requêtes ("RECHERCHEV")
          • icon picker
            Les 6 types de jointure
        • Ajouter des requêtes
        • Transformations complexes
        • Combiner les feuilles d'un classeur
        • Combiner automatiquement les fichiers d’un dossier
        • Équivalent d'un RECHERCHEV / VRAI
      • Paramètres de la source de données
      • Langage M
        • 1 | Introduction
          • Ressources
        • 2 | Travailler avec Power Query
          • Options [WiP]
        • 3 | Accès et combinaison des données
        • 4 | Valeurs et expressions
        • Fonctions personnalisées
        • Recherche de la valeur précédente
        • Contourner l'erreur Firewall
        • Tips
          • let ... in imbriqués
          • Closures (fermetures) [WiP]
          • Récursivité [ToDo]
      • Transformer avec R [WIP]
      • Transformer avec Python [WIP]
      • Query folding
      • Tips
    • 3 | Modéliser (+ DAX)
      • Propriétés du modèle
      • Modèle de données
        • Relations
        • Schéma en étoile
          • Concepts liés au schéma en étoile
        • Slow Changing Dimension (SCD) [WiP]
      • Composants du modèles
        • Groupes & hiérarchies
        • Groupe de calculs
        • Relations
        • Mesures d'expression de détail des lignes
        • Agrégations manuelles et automatiques
      • DAX (le langage) et Power BI
        • Mesures explicites dans Power BI
        • Exploiter le volet Vue de requête DAX
        • Calculs visuels
        • User-defined functions (UDF)
      • Table de dates
      • Level Security
        • RLS (Row Level Security)
          • RLS partiel [WiP]
        • "Page Level Security" [WiP]
        • OLS (Object Level Security) [WiP]
        • Visuel Level Security
      • Tables recommandées (Type de données dans Excel)
      • Optimisation du modèle
        • Roche's Maxim
        • Réduire la taille du modèle
    • 4 | Présenter et analyser
      • Filtres & tris
        • Paramètres dynamiques
        • Focus Segments
        • L'exploration ("drill")
      • Objets visuels
        • Axes dynamiques
        • Couleurs fixes selon les catégories
        • KPI
        • Jauge
        • Sparkline [WiP]
        • Valeur dynamique des zones de texte
        • Icônes personnalisées
        • Cartes (Map)
        • Mises en forme conditionnelle
        • Jolies tables [WiP]
        • Nouvelles cartes [WiP]
      • Animer le rapport
        • Infos bulles personnalisées
        • Extractions
        • Signets
      • Étendre le rapport
        • Ajouter des visuels
        • Présenter avec R [WIP]
        • Présenter avec Python [WIP]
        • Visuels personnalisés avec Deneb
        • Infographic Designer [WiP]
        • Power Automate dans Power BI
      • Flux de tâches translyticaux [mai 2025]
      • Styles & thèmes
        • Styles prédéfinis
    • 5 | Partager et diffuser
      • Diffuser et partager un rapport Power BI
        • Modèle sémantique comme source de rapport
        • Partager un espace de travail
        • Intégrer Power BI [WiP]
        • bouton_publier
          "Publier" avec Power BI Desktop dans OneDrive/SharePoint
      • Tableaux de bord
      • Créer l'application d'un Espace de travail Power BI
      • Espaces de travail
        • [Admin] Créer un Espace de travail
        • Approbation
        • Application dans un espace de travail
        • Rôles dans un espace de travail
        • Sécurité [ToDo]
        • Alertes dans Power BI
          • Fabric Activator pour Power BI
      • Power BI Server
        • Analysis Services (SSAS)
      • Datamart [beta]
      • Date de dernière actualisation
      • Requête dans Excel vers un modèle Power BI
      • Incorporer des rapports (Embed - API)
    • Développeurs
      • Tabular Editor
      • Mode développeur (Projet Power BI)
      • [Dev] PowerOps : analyser un rapport avec
      • ModeOp express
      • Semantic Labs
    • Echange documents formation
    • logo_copilot
      Copilot
      • ChatGPT
    • Rapports multilangue
    • Préparation PL-300

Les 6 types de jointure

Cf. l’exercice “sample23-Query-Join” du pour 2 exemples :
celui expliqué ci-dessous (Client > Commande)
un autre exemple, de comparaison entre 2 périodes

Les données des exemples

Nous avons 5 clients. Le client 1 a passé 1 commande, le client 2 a passé 2 commandes, le client 3 a passé 3 commandes, les clients 4 et 5 n’ont pas passé de commande.
Le client 10 a passé une commande, mais n’est pas présent dans la liste des clients. Dans une base de données normalisée, ce genre de situation ne devrait pas être possible (respect de l’intégrité référentielle).
Table Client
client_id
1
2
3
4
5
There are no rows in this table

Table Commandes
commande_id
client_id_commande
montant
1
1
100
2
2
200
3
2
300
4
3
400
5
3
500
6
3
600
7
10
1000
There are no rows in this table

Externe gauche (par défaut) (left outer)

Tous les clients de la table Client, même ceux sans commande.
8 lignes : les 6 commandes dont les clients sont dans la table Client (donc pas la commande du client 10) + les 2 clients sans commande.
Dans le doute, utiliser toujours cette jointure
Externe gauche
client_id
commande_id
client_id_commande
montant
1
1
1
100
2
2
2
200
2
3
2
300
3
4
3
400
3
5
3
500
3
6
3
600
4
null
4
null
5
null
5
null
There are no rows in this table

Externe droite (right outer)

Toutes les commandes, même des clients qui n’existent pas dans la table Client (cliend_id 10).

7 lignes : les 7 lignes de la table Commandes

Externe droite
client_id
commande_id
client_id_commande
montant
1
1
1
100
2
2
2
200
2
3
2
300
3
4
3
400
3
5
3
500
3
6
3
600
null
7
10
1000
There are no rows in this table

Externe entière

Tous les clients, même s’ils n’ont pas de commande, et toutes les commandes, même si le client n’existe pas dans la table Client.
9 lignes : les 6 lignes de la table Commandes dont les clients sont dans la table Client (donc pas la commande du client 10)
+ les 2 clients sans commande
+ la commande sans client (client_id 10).
Externe entière
client_id
commande_id
client_id_commande
montant
1
1
1
100
2
2
2
200
2
3
2
300
3
4
3
400
3
5
3
500
3
6
3
600
null
7
10
1 000
4
null
null
null
5
null
null
null
There are no rows in this table

Interne (Inner)

Les clients ayant au moins 1 commande et les commandes ayant au moins 1 client.
6 lignes : les 6 commandes dont les clients sont dans la table Client (donc pas la commande du client 10).
Interne
client_id
commande_id
client_id_commande
montant
1
1
1
100
2
2
2
200
2
3
2
300
3
4
3
400
3
5
3
500
3
6
3
600
There are no rows in this table

Gauche opposée

Seulement les clients qui n’ont pas de commande.
Permet d’isoler des cas particuliers, ici des clients sans commande.
2 lignes : les 2 clients n’ayant passé aucune commande.
Gauche opposée
client_id
commande_id
client_id_commande
montant
4
5
There are no rows in this table

Droite opposée

Seulement les commandes qui n’ont pas de client.
Permet d’isoler les non-conformités d’une table, ici de détecter les commandes sans client.
1 ligne, celle de la commande du client n’existant pas dans la table Client.
Droite opposée
client_id
commande_id
client_id_commande
montant
null
7
10
1 000
There are no rows in this table
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.