Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

MS Excel - kết hợp dữ liệu bên ngoài (SQL) với bảng cục bộ (trang tính)

Nhận xét của tôi ở trên chỉ nhằm mục đích mở ra một vài khả năng mà bạn có thể có trong tay.

PowerQuery là một Trình cắm miễn phí cho Office 2013. Trong Office 2016, nó là một phần của Excel và không còn là một Trình cắm thêm nữa.

Dù sao, bạn có vẻ thích cách tiếp cận sử dụng bảng tạm thời hoặc một biến bảng trên SQL của mình. Do đó, tôi sẽ giải thích kỹ hơn một chút về cách tiếp cận này:

Cuối cùng, bạn sẽ muốn một truy vấn tương tự như sau:

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;

Lưu ý tầm quan trọng của việc set nocount on; khi bắt đầu truy vấn SQL ở trên. Nếu không có điều đó, nó sẽ không hoạt động!

Khi bạn có truy vấn này, bạn có thể chỉ cần dán nó vào Excel bằng cách sử dụng trình đơn DataGet External DataFrom SQL Server . Trong bước đầu tiên, bạn sẽ nhận được bảng khách hàng và sau đó trong bước thứ hai, tinh chỉnh truy vấn để bao gồm biến bảng như được mô tả ở trên. Đây là một bản tóm tắt ngắn gọn bằng hình ảnh:

Tôi đoán, tại thời điểm này, câu hỏi duy nhất còn lại là:

  1. Làm cách nào để bạn tạo động câu lệnh SQL ở trên và
  2. làm cách nào để bạn có được bảng trên trong Excel sau đó được cập nhật bằng câu lệnh SQL được cập nhật này.

Để tạo động SQL ở trên, bạn có thể muốn xem phần sau: Sử dụng một mảng hoặc từ điển như mệnh đề from trong sql trong excel vba

Mới hôm qua, tôi đã trả lời một câu hỏi tương tự trong đó người dùng muốn chuyển nội dung của một trang tính Excel dưới dạng một bảng được tạo động đến SQL Server. Bạn có thể dễ dàng điều chỉnh (hoặc thậm chí sử dụng nó như hiện tại) cho mục đích của mình.

Đối với bước cuối cùng (cập nhật bảng này trong Excel với truy vấn SQL mới này), bạn có thể sử dụng trình ghi macro và thực hiện những gì tôi đã làm trong ảnh chụp màn hình ở trên. Mã được tạo tự động không hơn / kém so với những gì tôi muốn đề xuất cho bạn.

Vì vậy, bạn có nó. Hãy cho tôi biết nếu tôi không đủ rõ ràng hoặc nếu bạn cần thêm chi tiết để hiểu giải pháp này.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo tập lệnh cho các bản ghi cụ thể trong SQL Server

  2. Cách kiểm tra khả năng tương thích của script sql với SQL 2008

  3. Tên cột và / hoặc tên bảng dưới dạng tham số

  4. SQL - Truy vấn để lấy địa chỉ IP của máy chủ

  5. Tính toán kiểu dữ liệu SQL Server Float so với số thập phân