Lewy antysprzężenia
Jednym z rodzajów sprzężeń dostępnych w oknie dialogowym Scalanie w dodatku Power Query jest lewe antysprzężenia, które powoduje tylko wiersze z lewej tabeli, które nie mają pasujących wierszy z prawej tabeli. Więcej informacji: Omówienie operacji scalania
Diagram przedstawia lewą tabelę z kolumnami Date(Data), CountryID (Identyfikator kraju) i Units (Jednostki). Podkreślona kolumna CountryID zawiera wartości 1 w wierszach 1 i 2, 3 w wierszu 3 i 2 w wierszu 4. Prawa tabela zawiera kolumny Id (Identyfikator) i Country (Kraj). Kolumna identyfikatora podkreślonego zawiera wartości 3 w wierszu 1 (oznaczające Panamę) i 4 w wierszu 2 (oznaczające Hiszpanię). Tabela poniżej dwóch pierwszych tabel zawiera kolumny Date( Data), CountryID (Identyfikator kraju), Units (Jednostki) i Country (Kraj). Tabela zawiera trzy wiersze z dwoma wierszami zawierającymi dane countryID 1 i jeden wiersz countryID 2. Ponieważ żaden z pozostałych identyfikatorów CountryID nie jest zgodny z żadnym z krajów/regionów w prawej tabeli, wiersze w kolumnie Country w scalonej tabeli zawierają wartość null.
W tym artykule użyto przykładowych danych, aby pokazać, jak wykonać operację scalania z lewym antysprzężeniami. Przykładowe tabele źródłowe dla tego przykładu to:
Sales (Sprzedaż): ta tabela zawiera pola Date (Data), CountryID (Identyfikator kraju) i Units (Jednostki). CountryID to wartość całkowita reprezentująca unikatowy identyfikator z tabeli Kraje .
Kraje: ta tabela jest tabelą referencyjną z identyfikatorami pól i krajami. Pole id reprezentuje unikatowy identyfikator dla każdego rekordu.
W tym przykładzie scalisz obie tabele z tabelą Sales (Sprzedaż ) jako tabelą po lewej stronie i tabelą Countries (Kraje ) po prawej stronie. Sprzężenia są wykonywane między następującymi kolumnami.
Pole z tabeli Sales | Pole z tabeli Kraje |
---|---|
CountryID | ID |
Celem jest utworzenie tabeli podobnej do poniższej, w której przechowywane są tylko wiersze z lewej tabeli, które nie pasują do żadnej z prawej tabeli.
Zrzut ekranu przedstawiający lewą tabelę końcową antysprzężenia z nagłówkami kolumn Date, CountryID, Units i Country oraz trzema wierszami danych, których wartości kolumny Country mają wartość null.
Aby wykonać lewe antysprzężenie:
- Wybierz zapytanie Sales (Sprzedaż), a następnie wybierz pozycję Merge query (Scal zapytania).
- W oknie dialogowym Scalanie w obszarze Prawa tabela do scalania wybierz pozycję Kraje.
- W tabeli Sales (Sprzedaż) wybierz kolumnę CountryID (Identyfikator kraju).
- W tabeli Kraje wybierz kolumnę ID.
- W sekcji Rodzaj sprzężenia wybierz pozycję Lewy anty.
- Wybierz przycisk OK.
Napiwek
Przyjrzyj się bliżej komunikatowi w dolnej części okna dialogowego z napisem "Wybór wybiera 3 z 4 wierszy z pierwszej tabeli". Ten komunikat ma kluczowe znaczenie dla zrozumienia wyniku uzyskanych z tej operacji.
W tabeli Sales (Sprzedaż) istnieją dwa wystąpienia identyfikatora CountryID 1 i jedno wystąpienie identyfikatora CountryID 2, ale żadna z nich nie znajduje się w tabeli Kraje. W związku z tym dopasowanie znalazło trzy z czterech wierszy w lewej (pierwszej) tabeli.
W tabeli Countries (Kraje) znajduje się rekord Country Panama o identyfikatorze 3, więc rekord nie jest wprowadzany do tabeli Sales (Sprzedaż), ponieważ liczby są zgodne. Ponadto masz kraj Hiszpanii o identyfikatorze 4, ale w tabeli Sales nie ma żadnych rekordów countryID 4. W związku z tym żadna z dwóch wierszy z prawej (drugiej) tabeli nie jest wprowadzana do tabeli Sales .
W nowo utworzonej kolumnie Kraje rozwiń pole Kraj . Nie zaznaczaj pola wyboru Użyj oryginalnej nazwy kolumny jako prefiksu .
Po wykonaniu tej operacji utworzono tabelę, która wygląda jak na poniższej ilustracji. Nowo rozwinięte pole Country (Kraj ) nie ma żadnych wartości, ponieważ lewe antysprzężenia nie przynosi żadnych wartości z prawej tabeli — przechowuje tylko wiersze z lewej tabeli.
Zrzut ekranu przedstawiający końcową tabelę z nagłówkami kolumn Date, CountryID, Units i Country oraz trzema wierszami danych. Wszystkie wartości kolumny Country mają wartość null.