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:
- 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ć.
- 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.