Můj výše uvedený komentář měl pouze otevřít několik možností, které byste mohli mít po ruce.
PowerQuery je bezplatný plug-in pro Office 2013. V Office 2016 je součástí Excelu a již není plug-inem.
Každopádně se zdá, že preferujete přístup k použití dočasné tabulky nebo proměnné tabulky na vašem SQL. Proto se o tomto přístupu trochu více rozepíšu:
Nakonec budete chtít dotaz podobný tomuto:
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;
Všimněte si důležitosti set nocount on;
na začátku výše uvedeného SQL dotazu. Bez toho to nebude fungovat!
Jakmile budete mít tento dotaz, můžete jej jednoduše vložit do Excelu pomocí nabídky Data
► Get External Data
► From SQL Server
. V prvním kroku získáte tabulku zákazníků a ve druhém kroku upřesníte dotaz tak, aby zahrnoval proměnnou tabulky, jak je popsáno výše. Zde je krátké vizuální shrnutí:
Myslím, že v tuto chvíli zbývají jediné otázky:
- Jak dynamicky vytvoříte výše uvedený příkaz SQL a
- jak získáte výše uvedenou tabulku v aplikaci Excel a poté ji aktualizujete tímto aktualizovaným příkazem SQL.
Chcete-li dynamicky vytvořit výše uvedený SQL, můžete se podívat na následující:Použití pole nebo slovníku jako z klauzule v SQL v aplikaci Excel vba
Zrovna včera jsem odpovídal na podobnou otázku, kdy chtěl uživatel předat obsah listu Excelu jako dynamicky vytvořenou tabulku na SQL Server. Můžete jej snadno přizpůsobit (nebo jej dokonce používat tak, jak je) pro svůj účel.
Pro poslední krok (aktualizace této tabulky v Excelu tímto novým SQL dotazem) můžete použít záznam maker a udělat to, co jsem udělal na výše uvedeném snímku obrazovky. Automaticky vytvořený kód není nic víc/méně než to, co bych vám navrhl.
Tak, tady to máte. Dejte mi vědět, pokud jsem nebyl dostatečně jasný nebo pokud potřebujete další podrobnosti, abyste porozuměli tomuto řešení.