Łączenie danych z różnych źródeł podczas wczytywania

Wywołaliście mnie do tablicy w komentarzach na YouTube, więc jestem! Właściwie w tym samym czasie dwóch moich widzów zadało mi bardzo podobne pytania.

Jak widzisz pytania dotyczą w zasadzie tego samego, więc zabrałem się do tworzenia 🙂

Wykorzystując te sposoby korzystam z danych, które możesz pobrać poniżej. Przygotowałem je zarówno jako plik XLSX z danymi w kilku zakładkach jak i zgodnie z pytaniem Pawła – jako oddzielne bazy danych o takiej samej strukturze.

Pobierz pliki do tego wpisu

Aby móc pobrać pliki musisz się zalogować

Sposób prymitywny na tworzenie wspólnej tabeli

Zaczniemy od najbardziej prymitywnego sposobu – prostego dołączania tabel.

Dlaczego piszę o tym, że jest to sposób prymitywny? Ponieważ musimy usiąść i modyfikować raport w momencie, w którym zostanie utworzona nowa baza danych/tabela czy zakładka w pliku. A tego nie chcemy, prawda?

Ale jednak ze zwykłej rzetelności wspominam o tym i tutaj.

Zaczynamy od zaimportowania wszystkich tabel, które chcemy ze sobą połączyć.

Mamy oddzielną bazę danych z transakcjami dla każdego roku i dodatkową bazę SharedDatabase w której są tabele dotyczące produktów i klientów. Na razie one nas nie interesują.

Analogicznie w przypadku zakładek z pliku XLSX importujemy wszystkie zakładki, które nas interesują.

Dalej przechodzimy w narzędziach głównych do Dołącz zapytania -> Dołącz zapytania jako nowe. Dzięki temu stworzymy nową tabelę z połączonych.

Działa? Działa.

Ale to rozwiązanie ma kilka wad obok których po prostu nie można przejść obojętnie:

  1. Brak automatyzacji. Jak już napisałem wcześniej – każda nowa baza, każda nowa tabela, każda nowa zakładka sprawi, że będziesz musiał usiąść i grzebać tutaj, aby je dodać.
  2. Brak identyfikacji źródła. Tutaj mamy prosty przykład, w którym tego nie potrzebujemy. Ale co, jeżeli musisz mieć kolumnę, z której jasno będzie wynikać z której tabeli czy zakładki te dane pochodzą? Wtedy dla każdej zaimportowanej tabeli musisz taką kolumnę stworzyć. Niefajnie.

Dlatego pokażę Ci jak to zrobić w sprytny sposób 🙂

Sprytny sposób na łączenie danych z różnych źródeł SQL

Zaczynamy znowu od połączenia się z naszym serwerem SQL

Z tą różnicą, że tym razem nie zaznaczasz wszystkich interesujących Cię tabel. Wybierasz sobie po prostu jedną. Nieważne którą.

Przejdź do edytora i zerknij w prawo na Ustawienia zapytania.

Tutaj usuń wszystkie kroki poza pierwszym – Źródło. Zobaczysz coś takiego:

Pod pozycją (1) widzisz wszystkie bazy danych, które są na tym serwerze i to będzie dalsza baza naszych działań.

Spójrz teraz na kolumnę [Data] i kliknij na ikonkę po jej prawej stronie.

Kliknij OK.

Widzimy już coś więcej 🙂

I tutaj możesz już zacząć czyszczenie.

Przede wszystkim spójrz na kolumny [Name.1] i [Item] – tutaj masz nazwy poszczególnych tabel i widoków, które znajdują się na naszym serwerze.

Dodatkowo spójrz na kolumnę [Schema] – tutaj możesz od razu odfiltrować wartości sys i pozostawić tylko dbo.

Całość stanie się o wiele bardziej przejrzysta.

Teraz spójrzmy na to, co nam pozostało.

Mamy tutaj tabele:

  • Transactions2014
  • Transactions2015
  • Transactions2016
  • Transactions2017
  • Clients
  • Products

Nas interesują tabele, których nazwa zaczyna się od Transactions, ponieważ to właśnie w nich mamy dane, które chcemy ze sobą połączyć.

Co możemy zrobić, aby pozostawić tylko je?

Oczywiście możemy z ręki odfiltrować pozostałe.

Ale w ten sposób znowu wracamy do tego, że jeżeli w kolejnym roku zostanie stworzona nowa baza danych to ręcznie będziesz musiał ten filtr modyfikować.

Dlatego zróbmy to sprytniej przez Filtry tekstu -> Zawiera

Ponieważ mamy tutaj spójne nazewnictwo zostawmy tylko te tabele, które zawierają w sobie albo zaczynają się od „Transactions”. Dzięki temu w kolejnych latach nowe tabele będą dodawane automatycznie.

I wynikiem naszych działań będzie taka oto tabela:

I dochodzimy do grande finale.

Rozwiń kolumnę [Data]

I jak widzisz mamy jedną tabelę w której są dane z połączonych baz danych/tabel w tym przypadku w kolumnach 3 – 12.

Pozostałe kolumny spokojnie możesz usunąć lub pozostawić 1, 2 lub 13 w celu identyfikacji źródła z którego określone dane pochodzą.

Sprytny sposób na łączenie danych z wielu zakładek pliku Excel

Tutaj sprawa będzie bardzo podobna. Ba! Właściwie będzie wyglądała prawie tak samo jak w przypadku baz danych.

Przynajmniej do momentu, w którym rozwiniesz element [Data].

Tutaj będziesz musiał pamiętać o jednej rzeczy. Musisz wyczyścić jeszcze tę tabelę, ponieważ będą w niej nagłówki z poszczególnych zakładek.

I już! Właśnie w prosty sposób ułatwiłeś sobie życie i zaoszczędziłeś sobie sporo manualnej pracy.

Czy to było przydante?

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Join Us!

Custom Sidebar

You can set categories/tags/taxonomies to use the global sidebar, a specific existing sidebar or create a brand new one.