Sử dụng SubQuery để so sánh dữ liệu giữa 2 table

lehongduc

Member
Hội viên mới
Chào các Bạn,
Trong thực tế ứng dụng Access vào Kế toán chúng ta thường có nhu cầu so sánh dữ liệu giữa 2 bảng với nhau, thí dụ như trường hợp cần kiểm tra xem có dữ liệu nào có trong table này nhưng không có trong table kia, ...

Sau đây tôi xin giới thiệu 1 trường hợp làm ví dụ:
Giả định ta có 2 bảng danh mục hàng hoá: DmHanghoa và DmHanghoa_ithon
Nhu cầu là: tìm ra những mặt hàng nào có trong DmHanghoa nhưng không có trong DmHanghoa_ithon.
Cách thức xử lý như sau:
Tạo 1 Query với câu lệnh SQL như sau:

SELECT DmHanghoa.MSHH
FROM DmHanghoa
WHERE (((Exists (SELECT * FROM DmHanghoa_ithon WHERE (DmHanghoa.MSHH = DmHanghoa_ithon.MSHH)))=False));

Các bạn chú ý sẽ thấy:
1. Có 1 câu lệnh SELECT lồng bên trong. Cái này gọi là SubQuery (từ Sub trong SubQuery là tiền tố chỉ 1 Query thứ cấp bên trong 1 Query khác, giống như SubForm trong 1 Form)

2. Từ khoá Exists được sử dụng trong trường hợp này như 1 toán tử để kiểm tra sự hiện diện của những mẫu tin thoả điều kiện đặt ra.

Các Bạn thử sử dụng với các toán tử sau xem sao nhé: IN, ANY, ALL

Sau đây là link tải các tài liệu có liên quan:
1. File mdb chứa ví dụ trên và tài liệu giải thích bằng tiếng Anh (tôi trích nguyên văn từ tài liệu gốc): http://www.mediafire.com/download.php?nzdctmzwzuo

2. Tài liệu tiếng Anh về sử dụng ngôn ngữ SQL trong MS. Access: http://www.mediafire.com/download.php?newjeymnmuz
 
Ðề: Sử dụng SubQuery để so sánh dữ liệu giữa 2 table

Chào các Bạn,
Trong thực tế ứng dụng Access vào Kế toán chúng ta thường có nhu cầu so sánh dữ liệu giữa 2 bảng với nhau, thí dụ như trường hợp cần kiểm tra xem có dữ liệu nào có trong table này nhưng không có trong table kia, ...

Sau đây tôi xin giới thiệu 1 trường hợp làm ví dụ:
Giả định ta có 2 bảng danh mục hàng hoá: DmHanghoa và DmHanghoa_ithon
Nhu cầu là: tìm ra những mặt hàng nào có trong DmHanghoa nhưng không có trong DmHanghoa_ithon.
Cách thức xử lý như sau:
Tạo 1 Query với câu lệnh SQL như sau:

SELECT DmHanghoa.MSHH
FROM DmHanghoa
WHERE (((Exists (SELECT * FROM DmHanghoa_ithon WHERE (DmHanghoa.MSHH = DmHanghoa_ithon.MSHH)))=False));

Các bạn chú ý sẽ thấy:
1. Có 1 câu lệnh SELECT lồng bên trong. Cái này gọi là SubQuery (từ Sub trong SubQuery là tiền tố chỉ 1 Query thứ cấp bên trong 1 Query khác, giống như SubForm trong 1 Form)

2. Từ khoá Exists được sử dụng trong trường hợp này như 1 toán tử để kiểm tra sự hiện diện của những mẫu tin thoả điều kiện đặt ra.

Các Bạn thử sử dụng với các toán tử sau xem sao nhé: IN, ANY, ALL

Sau đây là link tải các tài liệu có liên quan:
1. File mdb chứa ví dụ trên và tài liệu giải thích bằng tiếng Anh (tôi trích nguyên văn từ tài liệu gốc): http://www.mediafire.com/download.php?nzdctmzwzuo

2. Tài liệu tiếng Anh về sử dụng ngôn ngữ SQL trong MS. Access: http://www.mediafire.com/download.php?newjeymnmuz

Một cách khác cũng dùng sub query cho kết quả tương tự:

SELECT DmHanghoa.MSHH
FROM DmHanghoa
WHERE mshh NOT IN (SELECT mahh FROM dmHanghoa_ithon);

Câu này có ý nghĩa là hãy lọc ra những record của dmhanghoa mà ở đó mshh chưa tồn tại (chưa có) trong dmHanghoa_ithon.
 
Ðề: Sử dụng SubQuery để so sánh dữ liệu giữa 2 table

Giả sử em đang có dữ liệu như sau:
MH | Tang loai
001 100 A
001 200 A
001 100 B
001 100 A
Các bác có thể dùng query để cho ra kết quả giống thế này không
MH | Tang loai |Hientai
001 100 A 100
001 200 A 300
001 100 B 100
001 100 A 400
Hiện tại để xử lý dạng thế này em đang phải dùng Dsum nhưng khi muốn chuyển sang SQL thì hình như các hàm có D... không áp dụng được
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top