Fuld ydre joinforbindelse
En af de joinforbindelser, der er tilgængelige i dialogboksen Flet i Power Query, er en fuld ydre joinforbindelse, som henter alle rækkerne fra både venstre og højre tabel. Flere oplysninger: oversigt over flettehandlinger
Skærmbillede, der viser en venstre tabel med kolonnerne Date, CountryID og Units. Den fremhævede kolonne CountryID indeholder værdier på 1 i række 1 og 2, 3 i række 3 og 2 i række 4. En højre tabel indeholder kolonnerne ID og Country. Den fremhævede id-kolonne indeholder værdier på 1 i række 1 (der angiver USA), 2 i række 2 (der angiver Canada), 3 i række 3 (der angiver Panama) og 4 (der angiver Spanien) i række 4. En tabel under de første to tabeller indeholder kolonnerne Date, CountryID, Units og Country. Alle rækker omarrangeres i numerisk rækkefølge i henhold til værdien CountryID. Det land, der er knyttet til tallet CountryID, vises i kolonnen Country. Da lande-id'et for Spanien ikke var indeholdt i venstre tabel, tilføjes der en ny række, og værdierne for dato, land-id og enheder for denne række er angivet til null.
I denne artikel bruges eksempeldata til at vise, hvordan du udfører en flettehandling med den fulde ydre joinforbindelse. Eksempelkildetabellerne for dette eksempel er:
Sales: Denne tabel indeholder felterne Date, CountryIDog Units. CountryID- er en heltalsværdi, der repræsenterer det entydige id fra tabellen Lande.
Countries: Denne tabel er en referencetabel med felterne id og Country. Feltet id repræsenterer det entydige id for hver post.
I dette eksempel fletter du begge tabeller med tabellen Sales som den venstre tabel, og tabellen Countries som den højre. Joinforbindelsen oprettes mellem følgende kolonner.
Felt fra tabellen Sales | Felt fra tabellen Lande |
---|---|
Land-id | ID |
Målet er at oprette en tabel som følgende, hvor navnet på landet vises som en ny kolonne Country i tabellen Sales. På grund af den fulde ydre joinforbindelse fungerer alle rækker fra både venstre og højre tabel, uanset om de kun vises i en af tabellerne.
Skærmbillede af den endelige fulde ydre jointabel med Dato, et CountryID og Enheder, der er afledt af tabellen Sales, og en kolonne af typen Country, der er afledt af tabellen Countries. Der blev tilføjet en femte række for at indeholde data fra Spanien, men denne række indeholder null i kolonnerne Date, CountryID og Units, da disse værdier ikke findes for Spanien i tabellen Sales.
Sådan udfører du en fuld ydre joinforbindelse:
- Vælg forespørgslen Sales, og vælg derefter Flet forespørgsler.
- I dialogboksen flet under højre tabel til fletningskal du vælge Lande.
- I tabellen Sales skal du vælge kolonnen CountryID.
- I tabellen lande
skal du vælge kolonnen id . - Vælg Fuld ydrei afsnittet Joinforbind type .
- Vælg OK
Seddel
Du kan flette på mere end én kolonne ved at markere og holde Ctrl nede og derefter vælge kolonnerne.
Drikkepenge
Se nærmere på meddelelsen nederst i dialogboksen med teksten "Markeringen svarer til 4 af 5 rækker fra begge tabeller". Denne meddelelse er afgørende for at forstå det resultat, du får fra denne handling.
I tabellen Lande har du Country Spanien med id på 4, men der er ingen poster for CountryID 4 i tabellen Sales. Derfor fandt kun tre af fire rækker fra den højre tabel et match. Alle rækker fra den højre tabel, der ikke havde tilsvarende rækker fra den venstre tabel, grupperes og vises i en ny række i outputtabellen uden værdier for felterne fra venstre tabel.
Udvid feltet Land fra kolonnen Lande, der er oprettet for nylig efter fletningen. Markér ikke afkrydsningsfeltet Brug det oprindelige kolonnenavn som præfiks.
Når du har udført denne handling, skal du oprette en tabel, der ligner følgende billede.
Skærmbillede af den fulde ydre sluttabel for joinforbindelsen, der indeholder Date, et CountryID og Units, der er afledt af tabellen Sales, og en kolonne af typen Country, der er afledt af tabellen Countries. Der blev tilføjet en femte række for at indeholde data fra Spanien, men denne række indeholder null i kolonnerne Date, CountryID og Units, da disse værdier ikke findes for Spanien i tabellen Sales.