Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

MS Excel - połącz dane zewnętrzne (SQL) z lokalną tabelą (arkuszem)

Mój komentarz powyżej miał na celu jedynie otwarcie kilku możliwości, które możesz mieć pod ręką.

PowerQuery to darmowa wtyczka do pakietu Office 2013. W pakiecie Office 2016 jest częścią programu Excel i nie jest już wtyczką.

W każdym razie wydaje się, że wolisz podejście polegające na użyciu tabeli tymczasowej lub zmiennej tabeli w swoim SQL. Dlatego omówię nieco więcej tego podejścia:

Na koniec będziesz potrzebować zapytania podobnego do tego:

set nocount on;
declare @tblVAT table
    (
     Country nvarchar(50),
     VAT decimal(9, 7)
    );

insert  into @tblVAT
        (Country, VAT)
values  (N'Germany', 0.19),
        (N'Frence', 0.20),
        (N'Spain', 0.21);


select  tc.Name,
        tc.ID,
        case when tc.Country is null then tv.Country
             else tc.Country
        end as Country,
        tv.VAT
from    dbo.tblCustomers as tc
full outer join @tblVAT as tv
on      tv.Country = tc.Country;

Zwróć uwagę na znaczenie set nocount on; na początku powyższego zapytania SQL. Bez tego to nie zadziała!

Gdy już masz to zapytanie, możesz po prostu wkleić je do Excela za pomocą menu DataGet External DataFrom SQL Server . W pierwszym kroku otrzymasz tabelę klientów, a następnie w drugim kroku doprecyzuj zapytanie, aby uwzględnić zmienną tabeli, jak opisano powyżej. Oto krótkie podsumowanie wizualne:

Myślę, że w tym momencie jedyne pozostałe pytania to:

  1. Jak dynamicznie utworzyć powyższą instrukcję SQL i
  2. jak uzyskać powyższą tabelę w programie Excel, a następnie zaktualizować ją zaktualizowaną instrukcją SQL.

Aby dynamicznie tworzyć powyższe kody SQL, warto zapoznać się z poniższym:Korzystanie z tablicy lub słownika z klauzuli from w sql w programie Excel vba

Jeszcze wczoraj odpowiedziałem na podobne pytanie, w którym użytkownik chciał przekazać zawartość arkusza Excela jako dynamicznie utworzoną tabelę do SQL Servera. Możesz łatwo dostosować (lub nawet używać go tak, jak jest) do swoich celów.

W ostatnim kroku (zaktualizuj tę tabelę w Excelu za pomocą tego nowego zapytania SQL) możesz użyć rejestratora makr i zrobić to, co zrobiłem na powyższym zrzucie ekranu. Automatycznie tworzony kod to nic więcej / mniej niż to, co bym Ci zaproponował.

Więc masz to. Daj mi znać, jeśli nie wyraziłem się wystarczająco jasno lub jeśli potrzebujesz dodatkowych informacji, aby zrozumieć to rozwiązanie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać dolne 50% zapytania wybierającego na serwerze SQL?

  2. Pobierz nazwy kolumn z zapytania bez danych

  3. Pobrać nazwy kolumn i typy procedury składowanej?

  4. Jak skutecznie modelować dziedziczenie w bazie danych?

  5. Sposoby łatwej przebudowy głównej bazy danych w SQL Server