sql >> Database >  >> RDS >> Sqlserver

MS Excel - voeg externe (SQL) gegevens samen met lokale tabel (blad)

Mijn opmerking hierboven was alleen bedoeld om een ​​paar mogelijkheden te openen die je misschien bij de hand hebt.

PowerQuery is een gratis plug-in voor Office 2013. In Office 2016 maakt het deel uit van Excel en niet langer een plug-in.

Hoe dan ook, je lijkt de voorkeur te geven aan de benadering om een ​​tijdelijke tabel of een tabelvariabele in je SQL te gebruiken. Daarom zal ik wat meer ingaan op deze benadering:

Uiteindelijk wil je een zoekopdracht die lijkt op deze:

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;

Let op het belang van set nocount on; aan het begin van de bovenstaande SQL-query. Zonder dat zal het niet werken!

Als u deze query eenmaal heeft, kunt u deze eenvoudig in Excel plakken met behulp van het menu DataGet External DataFrom SQL Server . In een eerste stap krijgt u de klantentabel en in een tweede stap verfijnt u de query om de tabelvariabele op te nemen zoals hierboven beschreven. Hier is een korte visuele samenvatting:

Ik denk dat op dit moment de enige resterende vragen zijn:

  1. Hoe maak je dynamisch de bovenstaande SQL-instructie en
  2. hoe krijg je de bovenstaande tabel in Excel en vervolgens bijgewerkt met deze bijgewerkte SQL-instructie.

Als u de bovenstaande SQL dynamisch wilt maken, kunt u het volgende bekijken:Een array of woordenboek gebruiken vanaf-clausule in sql in Excel vba

Gisteren nog beantwoordde ik een soortgelijke vraag waarbij een gebruiker de inhoud van een Excel-blad als een dynamisch gemaakte tabel wilde doorgeven aan een SQL Server. U kunt het gemakkelijk aanpassen (of zelfs gebruiken zoals het is) voor uw doel.

Voor de laatste stap (update deze tabel in Excel met deze nieuwe SQL-query) kun je de macrorecorder gebruiken en doen wat ik deed in de bovenstaande schermafbeelding. De automatisch aangemaakte code is niets meer/minder dan wat ik je zou voorstellen.

Dus daar heb je het. Laat het me weten als ik niet duidelijk genoeg was of als je meer details nodig hebt om deze oplossing te begrijpen.




  1. Oracle DBMS - Lees een tabel voor verwerking Updaten in een AFTER-trigger - tabel muteren

  2. Hoe een string tussen haakjes te extraheren in oracle sql-query

  3. ORA-12519 TNS:geen geschikte service-handler gevonden

  4. Roep pusher op wanneer mysql is gewijzigd