Nguyen thi huyen trang
Nguyen thi huyen trang PRO
Thảo luận 0 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 98 lượt xem

SQL FOR VBA WITH SQL_SELECT...UNION HOẶC SQL_SELECT... UNION ALL

May 09 2022

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

SELECT [tên cột] (nhiều cột)
FROM [tên bảng tính 1] 
UNION (UNION ALL)
SELECT [tên cột] (nhiều cột) FROM [tên bảng tính 2] 

Ở đây sẽ hiện ra kết quả của cả 2 bảng tính trong 1 cùng 1 sheets dữ liệu. Nghĩa là bạn có thể gộp các bảng tính từ nhiều sheets vào trong 1 sheet (1 bảng tính)

Từ khóa Union: sẽ cho kết quả là các giá trị duy nhất theo mặc định. Còn từ khóa Union All: sẽ cho kết quả là tất cả các cột của cả 2 bảng tính

Một số lưu ý quan trọng khi sử dụng Union (Union All)

  • Phải có chung tên trường (tên các cột)
  • Số lượng cột lấy ra trong hai hoặc nhiều bảng tính phải bằng nhau (nghĩa là bảng tính 1 lấy ra 4 cột thì bảng tính 2 cũng phải lấy ra 4 cột)
  • Mỗi cột trong câu lệnh Select phải được sắp xếp theo thứ tự giống nhau

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… Union/ Union All

SELECT  [Customers].[ID] , [Customers].[Company],   [Customers].[Last Name], [Customers].[First Name], [Customers].[Business Phone] FROM [Customers]
UNION
SELECT [Customers_2].[ID] , [Customers_2].[Company],  [Customers_2].[Last Name], [Customers_2].[First Name], [Customers_2].[Business Phone] FROM [Customers_2]

TỪ KHÓA SELECT (1): CHỌN CÁC TRƯỜNG DỮ LIỆU [ID], [Company], [Last Name], [First Name] và [Business Phone] trong bảng [CUSTOMERS] (Bảng 1)

TỪ KHÓA SELECT (2): CHỌN CÁC TRƯỜNG DỮ LIỆU [ID], [Company], [Last Name], [First Name] và [Business Phone] trong bảng [CUSTOMERS_2] (Bảng 2)

TỪ KHÓA UNION: GỘP HAI BẢNG CUSTOMERS CÓ CẤU TRÚC GIỐNG NHAU TỪ 2 SHEETS VÀO TRONG 1 SHEET.

Bước 3: Thực hiện câu lệnh SQL để gộp thông tin Mã Khách hàng, Tên Gọi, Tên Đệm và Số điện thoại công ty từ Bảng [Customers] (1) và cũng thông tin như vậy từ Bảng [Customers_2] (2) vào chung 1 sheets Kết quả. Và được dữ liệu hiện thị như sau:

TA CŨNG CÓ THỂ LẤY TẤT CẢ DỮ LIỆU CÁC CỘT TRONG 2 BẢNG TÍNH TRÊN VỚI LỆNH UNION ALL

SELECT  *  FROM [Customers] UNION ALL SELECT * FROM [Customers_2]

Cùng tham gia cộng đồng hỏi đáp về chủ đề Lập trình

Thảo luận 0 câu trả lời
Lượt xem 98 lượt xem
Vỗ tay vỗ tay

0 Bình 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