tailieunhanh - Ngôn ngữ SQL – Phép chia

Có 2 cách thực hiện: Cách 1: Sử dụng NOT EXISTS + NOT IN hoặc NOT EXISTS + NOT EXISTS Cách 2: Sử dụng mệnh đề GROUP BY + HAVING VD: Tìm nhân viên được phân công làm việc trong tất cả các đề án do phòng Nghiên cứu quản lí. | Bộ môn Hệ Thống Thông Tin - Khoa CNTT Ngôn ngữ SQL - Phép chia Phép chia Có 2 cách thực hiện Cách 1 Sử dụng NOT EXISTS NOT IN hoặc NOT EXISTS NOT EXISTS Cách 2 Sử dụng mệnh đề GROUP BY HAVING VD Tìm nhân viên được phân công làm việc trong tất cả các đề án do phòng Nghiên cứu quản lí Cách 1 Sử dụng NOT EXISTS NOT IN SELECT n MANY n TENNV FROM NHANVIEN n WHERE NOT EXISTS SELECT FROM PHONGBAN pti DEAN d WHERE d PHONG pti MAPHG AND pti TENPHG Nghiên cứu AND d MADA NOT IN SELECT pc MADA FROM PHANCONG pc WHERE pc MA-NVIEN n MANY Sử dụng NOT EXISTS NOT EXISTS SELECT n MANY n TENNV FROM NHANVIEN n WHERE NOT EXISTS SELECT FROM PHONGBAN pti DEAN d WHERE d PHONG pti MAPHG AND pti TENPHG Nghiên cứu AND NOT EXISTS SELECT FROM PHANCONG pc WHERE pc MA-NVIEN n MANY AND pc MADA d MADA 2 Bộ môn Hệ Thống Thông Tin - Khoa CNTT Cách 2 Sử dụng GROUP BY HAVING SELECT n MANV n TENNV FROM NHANVIEN n PHANCONG pc PHONGEAN ptol DEAN dl WHERE n MANV pc MA_NVIEN AND pc NADA dl MADA and dl PHONG ptol MAPHG AND ptol TENPHG Nghiên cứu GROUP EY n MANV n TENNV HAVING COUNT DISTINCT pto NADA SELECT COUNT DISTINCT d2 NADA FROM DEAN d2 PHONGEAN p o2 WHERE d2 PHONG p o2 MAPHG AND p o2 TENPHG Nghiên cứu Tìm nhân viên làm việc tất cả các đề án của công ty - Bước 1 Tìm các đề án của công ty mà nhân viên 001 chưa làm Cách 1 Dùng NOT EXISTS select from DEAN da where not exists select from PHANCONG pc where pc MA_NVIEN T001T and pc NADA da MADA Cách 2 Dùng NOT IN select from DEAN where MADA not in select MADA from PHANCONG where MA_NVIEN Tũũ1T - Bước 2 Nhận xét rằng Nếu kết quả trả ra là không có bộ nào - Nhân viên 001 làm tất cả các đề án. Ngược lại nếu kết quả trả ra là có từ 1 bộ dữ liệu trở lên - có đề án của công ty mà nhân viên 001 chưa làm - nhân viên 001 không làm mọi đề án của công ty. Do vậy Tìm các nhân viên làm mọi đề án của công ty tương đương với việc kiểm tra từng nhân viên nếu danh sách các đề án của công ty nhân viên đó chưa làm là rỗng không có bộ nào - nhân viên làm mọi đề án của công ty .

TỪ KHÓA LIÊN QUAN