SQL FOR VBA WITH SQL_SELECT... LEFT 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] 
LEFT 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 sẽ lấy toàn bộ dữ liệu bảng tính 1 và một phần chung của bảng tính 2. Kết quả sẽ trả về 0 nếu bảng tính 2 không có dữ liệu chung với Bảng tính 1

 

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

Bước 2: Viết câu lệnh SQL theo cú pháp Select… Left Join. Ta cũng có thể kết hợp với Select… 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] LEFT JOIN [Customers] 

ON [Orders].[Customer ID] = [Customers].[ID])
INNER JOIN [HangHoa] ON [Orders].[Shipper ID] = [HangHoa].[Shipper ID])

TỪ KHÓA SELECT: CHỌN CÁC TRƯỜNG DỮ LIỆU [Order ID], [Customer Id], [Order Date], [Shipping Fee] trong bảng [ORDERS] và các trường [Last Name], [First Name] trong bảng [CUSTOMERS] và trường [Shipper ID], [TEN_HH] trong bảng [HangHoa]

TỪ KHÓA FROM: LẤY THÔNG TIN TỪ BẢNG [ORDERS] (BẢNG 1)

TỪ KHÓA LEFT JOIN: KẾT HỢP LẤY THÔNG TIN TỪ BẢNG [CUSTOMERS] (BẢNG 2)

TỪ KHÓA INNER JOIN: KẾT HỢP LẤY THÔNG TIN TỪ BẢNG [HangHoa] (BẢNG 3)

TỪ KHÓA ON: BẢNG 1 VÀ BẢNG 2 CÓ CHUNG TRƯỜNG [Customer ID], BẢNG 1 VÀ BẢNG 3 CÓ CHUNG TRƯỜNG [Shipper ID]

Bước 3: Thực hiện câu lệnh SQL để hiện thông tin về Mã khách hàng, Ngày đặt hàng và phí vận chuyển (trong bảng [Orders]), lấy Tên gọi và đệm trong bảng [Customers]) và mã nhân viên giao hàng, Tên Hàng hóa trong bảng [HangHoa]. Ở đây bảng [Orders] và [Customers] sẽ là kết nối Left Join nghĩa là một số thông tin không có trong bảng Customers sẽ trả về 0, còn bảng [Orders] vẫn lấy hết thông tin. Còn bảng [Orders] và bảng [HangHoa] là kết nối Inner Join nên cả hai bảng chỉ lấy phần giao nhau nghĩa là thông tin phải bắt buộc có trong 2 bảng mới lấy ra kết quả. Và đây là Kết quả:

 

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