Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

MS Excel - gabungkan data eksternal (SQL) dengan tabel lokal (lembar)

Komentar saya di atas hanya dimaksudkan untuk membuka beberapa kemungkinan yang mungkin Anda miliki.

PowerQuery adalah Plug-In gratis untuk Office 2013. Di Office 2016 ini adalah bagian dari Excel dan bukan lagi Plug-In.

Bagaimanapun, Anda tampaknya lebih suka pendekatan untuk menggunakan tabel temp atau variabel tabel pada SQL Anda. Oleh karena itu, saya akan menguraikan lebih lanjut tentang pendekatan ini:

Pada akhirnya Anda akan menginginkan kueri yang mirip dengan yang ini:

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;

Perhatikan pentingnya set nocount on; di awal kueri SQL di atas. Tanpa itu tidak akan berhasil!

Setelah Anda memiliki kueri ini, Anda cukup menempelkannya ke Excel menggunakan menu Data Get External Data From SQL Server . Pada langkah pertama Anda akan mendapatkan tabel pelanggan dan kemudian pada langkah kedua menyaring kueri untuk memasukkan variabel tabel seperti yang dijelaskan di atas. Berikut adalah ringkasan visual singkatnya:

Saya kira, pada titik ini satu-satunya pertanyaan yang tersisa adalah:

  1. Bagaimana Anda membuat pernyataan SQL di atas secara dinamis dan
  2. bagaimana Anda mendapatkan tabel di atas di Excel kemudian diperbarui dengan pernyataan SQL yang diperbarui ini.

Untuk membuat SQL di atas secara dinamis, Anda mungkin ingin melihat yang berikut:Menggunakan array atau kamus seperti dari klausa dalam sql di excel vba

Baru kemarin saya menjawab pertanyaan serupa di mana pengguna ingin meneruskan konten lembar Excel sebagai tabel yang dibuat secara dinamis ke SQL Server. Anda dapat dengan mudah menyesuaikan (atau bahkan menggunakannya apa adanya) untuk tujuan Anda.

Untuk langkah terakhir (perbarui tabel ini di Excel dengan kueri SQL baru ini), Anda dapat menggunakan perekam makro dan melakukan apa yang saya lakukan pada tangkapan layar di atas. Kode yang dibuat secara otomatis tidak lebih / kurang dari apa yang akan saya usulkan kepada Anda.

Jadi, begitulah. Beri tahu saya jika saya tidak cukup jelas atau jika Anda memerlukan detail lebih lanjut untuk memahami solusi ini.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hitung Total Biaya Kepemilikan Pemantauan SQL Server Anda

  2. Cara Mengubah Kolom atau Menghasilkan Alter Script dengan menggunakan GUI di SQL Server - Tutorial SQL Server / T-SQL Bagian 38

  3. Mengambil catatan terakhir di setiap grup dari database - SQL Server 2005/2008

  4. CROSS JOIN vs INNER JOIN dalam SQL

  5. OLTP Dalam Memori:Apa yang baru di SQL Server 2016