SQL cho VBA với mệnh đề truy vấn SQL_SELECT... INNER JOIN

Nội dung được viết bởi Nguyen thi huyen trang

Trong bài viết này, chúng ta sẽ tìm hiểu câu lệnh SQL INNER JOIN cho VBA để kết hợp nhiều bảng dữ liệu trong SQL dựa trên một trường (cột) chung giữa các bảng. Cùng xem nhé!

SELECT SYNTAX

SELECT [tên cột] (nhiều cột)
FROM [tên bảng tính 1]
INNER JOIN [tên bảng tính 2]
ON [tên bảng tính 1].[tên cột] = [tên bảng tính 2].[tên cột]

Trong đó:

  • SELECT [tên cột] (nhiều cột): Lựa chọn một hoặc nhiều cột từ bảng 1 hoặc bảng 2 để hiển thị.
  • FROM [tên bảng tính 1]: Xác định bảng chính để bắt đầu truy vấn.
  • INNER JOIN [tên bảng tính 2]: Sử dụng phép INNER JOIN để kết hợp bảng 1 với bảng 2. INNER JOIN chỉ trả về các hàng có giá trị khớp ở cả hai bảng.
  • ON [tên bảng tính 1].[tên cột] = [tên bảng tính 2].[tên cột]: Điều kiện kết hợp dựa trên một cột chung giữa bảng 1 và bảng 2. Ví dụ, cột chung có thể là id hay membership_number trong cả hai bảng.

Hiện thông tin một vài trường dữ liệu tùy chọn với câu lệnh INNER JOIN

Bước 1: Đặt tên cho các bảng tính trong từng sheets phía dưới và tên các trường dữ liệu

SQL

Bước 2: Viết câu lệnh SQL theo cú pháp Select… Inner Join

SELECT   [Orders].[Order ID], [Orders].[Customer Id],[Customers].[Last Name], [Customers].[First Name],[Orders].[Shipping Fee]
 FROM [Orders] INNER JOIN [Customers] ON [Orders].[Customer ID] = [Customers].[ID]
  • TỪ KHÓA SELECT: CHỌN CÁC TRƯỜNG DỮ LIỆU [Order ID], [Shipping Fee] trong bảng [ORDERS] và các trường [Customer Id], [Last Name], [First Name] trong bảng [CUSTOMERS]. 
  • TỪ KHÓA FROM: LẤY THÔNG TIN TỪ BẢNG [ORDERS] (BẢNG 1)
  • TỪ KHÓA INNER JOIN: KẾT HỢP LẤY THÔNG TIN TỪ BẢNG [CUSTOMERS] (BẢNG 2)
  • TỪ KHÓA ON: BẢNG 1 VÀ BẢNG 2 CÓ CHUNG TRƯỜNG [Customer ID]

Bước 3: Thực hiện câu lệnh SQL để hiện thông tin về Mã đơn hàng (trong bảng [Orders]), Mã Khách hàng (trong bảng [Customers]), Tên gọi Khách Hàng (trong bảng [Customers]), Tên Đệm của khách hàng (trong bảng [Customers]), và tiền phí vận chuyển (trong bảng [Orders]) thông qua trường chung là Mã khách hàng. Kết quả như sau:

SQL
Trong VD trên: Thông tin về Khách hàng có ID=2 không hiện ra trong bảng Kết quả. Vì Bảng Orders không có thông tin về khách hàng có ID=2 (chỉ có thông tin về Khách hàng ID =1, 3, 4…).Như vậy Kết nối Inner Join cho 2 bảng là lấy ra phần thông tin chung cho cả 2 bảng thông qua trường khóa ID Customer

Tham khảo khóa học: Truy vấn dữ liệu với SQL

Hiện thông tin với nhiều kết nối INNER JOIN

SELECT   [Orders].[Order ID], [Orders].[Customer Id],[Orders].[Order Date],[Customers].[Last Name], [Customers].[First Name],[Orders].[Shipping Fee],[HangHoa].[Shipper ID], [HangHoa].[TEN_HH]  
FROM (([Orders] 
INNER JOIN [Customers]  ON [Orders].[Customer ID] = [Customers].[ID])
INNER JOIN [HangHoa] ON [Orders].[Shipper ID] = [HangHoa].[Shipper ID])
SQL
Đây là 3 bảng [Order], [Customer] và [HangHoa]. Bảng [Order] và [Customer] liên kết với nhau bằng Mã khách hàng. Còn bảng [Order] và bảng [HangHoa] liên kết với nhau bằng Mã Shipper ID

Nếu công việc của bạn liên quan nhiều đến quản lý, phân tích dữ liệu và làm báo cáo trên bảng tính thì giỏi Excel thôi chưa đủ. Nếu biết thêm về VBA sẽ giúp bạn tiết kiệm tối đa thời gian làm việc nhờ làm báo cáo tự động, phân tích và xử lý số liệu chính xác tuyệt đối, đặc biệt công cần lọ mọ sửa thủ công,…

Tất tần tật những kiến thức từ cơ bản đến nâng cao về cách sử dụng VBA trong Excel sẽ được đề cập trong khóa học VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA tại Gitiho

Hãy nhấn vào Học thử hoặc Đăng ký ngay!

/5 - ( bình chọn)

/5 - ( bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông