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

Xem tài liệu đính kèm VBA for SQL references hoặc VBA for connection with SQL

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]

Ở đây ta có thể chọn 1 cột hoặc nhiều cột trong bảng tính 1 và bảng tính 2. Hai bảng tính này được liên kết với nhau thông qua 1 trường (cột) dữ liệu chung

HOẶC KẾT HỢP NHIỀU BẢNG TÍNH CÓ CHUNG TRƯỜNG DỮ LIỆU NHƯ SAU

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])
INNER JOIN [tên bảng tính 3]
ON [tên bảng tính 1].[tên cột] = [tên bảng tính 3].[tên cột])
...

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

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 trong SQL

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 trong SQL

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 chỉ dùng Excel, bạn sẽ thường xuyên phải OT đến mỗi kỳ làm báo cáo, stress vì sai dữ liệu do nhập thủ công, hay gặp vấn đề các hàm load chậm do dữ liệu quá nặng,...

Có lẽ bạn đã từng nghe ở đâu đó về công cụ lập trình VBA trên Excel, 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,...

Nhưng bạn không dám nghĩ một ngày nào đó mình sẽ dùng VBA bởi vì mình không biết lập trình, sửa code và gỡ lỗi mã. Tin mình đi, bạn hoàn toàn có thể thành thạo công cụ này ngay cả khi không giỏi Excel, không biết lập trình với khóa học VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA tại Gitiho.

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 khiến mọi thao tác thủ công trên Excel gần như được loại bỏ hoàn toàn. 

Hãy nhấn vào Học thử hoặc Đăng ký ngay để cảm nhận sự “vi diệu” mà VBA mang lại cho công việc của bạn nhé!

0/5 - (0 bình chọn)

0/5 - (0 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