giunzione esterna completa
Uno dei tipi di join disponibili nella finestra di dialogo Merge in Power Query è un join esterno completo, che inserisce tutte le righe da entrambe le tabelle di sinistra e di destra. Altre informazioni: panoramica delle operazioni di merge
Screenshot che mostra una tabella a sinistra con colonne Date, CountryID e Units. La colonna CountryID evidenziata contiene valori pari a 1 nelle righe 1 e 2, 3 nella riga 3 e 2 nella riga 4. Una tabella corretta contiene le colonne ID e Country. La colonna ID evidenziata contiene valori pari a 1 nella riga 1 (che denota USA), 2 nella riga 2 (che denota Canada), 3 nella riga 3 (che denota Panama) e 4 nella riga 4 (che denota Spagna). Una tabella sotto le prime due tabelle contiene le colonne Date, CountryID, Units e Country. Tutte le righe vengono riorganite in ordine numerico in base al valore CountryID. Il paese associato al numero CountryID viene visualizzato nella colonna Country. Poiché l'ID paese per la Spagna non è contenuto nella tabella a sinistra, viene aggiunta una nuova riga e i valori di data, ID paese e unità per questa riga sono impostati su Null.
Questo articolo usa dati di esempio per illustrare come eseguire un'operazione di unione con l'outer join completo. Le tabelle di origine di esempio per questo esempio sono:
Sales: questa tabella include i campi Date, CountryIDe Units. CountryID è un valore numerico intero che rappresenta l'identificatore univoco dalla tabella Paesi.
Paesi: questa tabella è una tabella di riferimento con i campi ID e Paese. Il campo id rappresenta l'identificatore univoco per ogni record.
In questo esempio vengono unite entrambe le tabelle, con la tabella Sales come tabella a sinistra e la tabella Countries a destra. Il join viene eseguito tra le colonne seguenti.
Campo della tabella Vendite | Campo della tabella Paesi |
---|---|
CountryID | Identificativo |
L'obiettivo è creare una tabella simile alla seguente, in cui il nome del paese viene visualizzato come nuova colonna Country nella tabella Sales. A causa del funzionamento del full outer join, tutte le righe delle tabelle di sinistra e destra vengono visualizzate, indipendentemente dal fatto che vengano visualizzate solo in una delle tabelle.
Screenshot della tabella finale del full outer join con Data, un CountryID e Unità derivati dalla tabella Vendite, e una colonna Country derivata dalla tabella Countries. È stata aggiunta una quinta riga per contenere dati dalla Spagna, ma tale riga contiene null nelle colonne Date, CountryID e Units poiché tali valori non esistevano per Spagna nella tabella Sales.
Per eseguire un outer join completo:
- Selezionare la query
Sales e quindi selezionare Merge query . - Nella finestra di dialogo Unisci , sotto Tabella Destra per Unire, selezionare Paesi.
- Nella tabella Sales selezionare la colonna CountryID.
- Nella tabella Paesi, selezionare la colonna ID.
- Nella sezione tipo di join
selezionare esterno completo. - Selezionare OK
Nota
È possibile unire più colonne selezionando e tenendo premuto CTRL e quindi selezionando le colonne.
Mancia
Esaminare più in dettaglio il messaggio nella parte inferiore della finestra di dialogo che legge "La selezione corrisponde a 4 di 5 righe di entrambe le tabelle". Questo messaggio è fondamentale per comprendere il risultato ottenuto da questa operazione.
Nella tabella Paesi, è presente il Paese Spagna con ID di 4, ma non ci sono record per CountryID 4 nella tabella Sales. Pertanto, solo tre di quattro righe della tabella destra hanno trovato una corrispondenza. Tutte le righe della tabella di destra che non hanno righe corrispondenti dalla tabella a sinistra vengono raggruppate e visualizzate in una nuova riga della tabella di output senza valori per i campi della tabella a sinistra.
Dalla colonna Paesi appena creata dopo l'operazione di unione, espandi il campo Paese. Non selezionare la casella di controllo Usa il nome originale della colonna come prefisso.
Dopo aver eseguito questa operazione, si creerà una tabella simile all'immagine seguente.
Screenshot della tabella finale di full outer join contenente Data, un CountryID e Unità derivate dalla tabella Sales, e una colonna Country derivata dalla tabella Countries. È stata aggiunta una quinta riga per contenere dati dalla Spagna, ma tale riga contiene null nelle colonne Date, CountryID e Units poiché tali valori non esistevano per Spagna nella tabella Sales.