CSDL

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 12

create database QLCB

use QLCB

create table MAYBAY


(
MaMB int primary key,
Hieu varchar(50),
TamBay int,
)

create table CHUYENBAY


(
MaCB char(5) primary key,
GaDi varchar(50),
GaDen varchar(50),
DoDai int,
GioDi time,
GioDen time,
ChiPhi int,
MaMB int,
CONSTRAINT FK_CHUYENBAY_MaMB
FOREIGN KEY (MaMB) REFERENCES MAYBAY(MaMB),
)

create table NHANVIEN


(
MaNV char(9) primary key,
Ten nvarchar(50),
Luong int,
)

create table CHUNGNHAN


(
MaNV char(9),
MaMB int,
PRIMARY KEY(MaNV,MaMB),
CONSTRAINT FK_CHUNGNHAN_MaMB
FOREIGN KEY (MaMB) REFERENCES MAYBAY(MaMB),
CONSTRAINT FK_CHUYENBAY_MaMNV
FOREIGN KEY (MaNV) REFERENCES NHANVIEN(MaNV),
)

INSERT INTO CHUYENBAY (MaCB, GaDi, GaDen, DoDai, GioDi, GioDen, ChiPhi, MaMB)
VALUES
('VN431', 'SGN', 'CAH', 3693, '05:55', '06:55', 236, 747),
('VN320', 'SGN', 'DAD', 2798, '06:00', '07:10', 221, 737),
('VN464', 'SGN', 'DLI', 2002, '07:20', '08:05', 225, 340),
('VN216', 'SGN', 'DIN', 4170, '10:30', '14:20', 262, 757),
('VN280', 'SGN', 'HPH', 11979, '06:00', '08:00', 1279, 777),
('VN254', 'SGN', 'HUI', 8765, '18:40', '20:00', 781, 767),
('VN338', 'SGN', 'BMV', 4081, '15:25', '16:25', 375, 320),
('VN440', 'SGN', 'BMV', 4081, '18:30', '19:30', 426, 319),
('VN651', 'DAD', 'SGN', 2798, '19:30', '08:00', 221, 727),
('VN276', 'DAD', 'CXR', 1283, '09:00', '12:00', 203, 154),
('VN374', 'HAN', 'VII', 510, '11:40', '13:25', 120, 747),
('VN375', 'VII', 'CXR', 752, '14:15', '16:00', 181, 737),
('VN269', 'HAN', 'CXR', 1262, '14:10', '15:50', 202, 340),
('VN315', 'HAN', 'DAD', 134, '11:45', '13:00', 112, 757),
('VN317', 'HAN', 'UIH', 827, '15:00', '16:15', 190, 777),
('VN741', 'HAN', 'PXU', 395, '06:30', '08:30', 120, 767),
('VN474', 'PXU', 'PQC', 1586, '08:40', '11:20', 102, 320),
('VN476', 'UIH', 'PQC', 485, '09:15', '11:50', 117, 319);

INSERT INTO MAYBAY (MaMB, Hieu, TamBay)


VALUES
(747, 'Boeing 747 - 400', 13488),
(737, 'Boeing 737 - 800', 5413),
(340, 'Airbus A340 - 300', 11392),
(757, 'Boeing 757 - 300', 6416),
(777, 'Boeing 777 - 300', 10306),
(767, 'Boeing 767 - 400ER', 10360),
(320, 'Airbus A320', 4168),
(319, 'Airbus A319', 2888),
(727, 'Boeing 727', 2406),
(154, 'Tupolev 154', 6565);

INSERT INTO NHANVIEN (MaNV, Ten, Luong)


VALUES
('242518965', 'Tran Van Son', 120433),
('141582651', 'Doan Thi Mai', 178345),
('011564812', 'Ton Van Quy', 153972),
('567354612', 'Quan Cam Ly', 256481),
('552455318', 'La Que', 101745),
('550156548', 'Nguyen Thi Cam', 205187),
('390487451', 'Le Van Luat', 212156),
('274878974', 'Mai Quoc Minh', 99890),
('254099823', 'Nguyen Thi Quynh', 24450),
('356187925', 'Nguyen Vinh Bao', 44740),
('355548984', 'Tran Thi Hoai An', 212156),
('310454876', 'Ta Van Do', 212156),
('489456522', 'Nguyen Thi Quy Linh', 127984),
('489221823', 'Bui Quoc Chinh', 23980),
('548977562', 'Le Van Quy', 84476),
('310454877', 'Tran Van Hao', 33546),
('142519864', 'Nguyen Thi Xuan Dao', 227489),
('269734834', 'Truong Tuan Anh', 289950),
('287321212', 'Duong Van Minh', 48090),
('552455348', 'Bui Thi Dung', 92013),
('248965255', 'Tran Thi Ba', 43723),
('159542516', 'Le Van Ky', 48250),
('348121549', 'Nguyen Van Thanh', 32899),
('574489457', 'Bui Van Lap', 20);

INSERT INTO CHUNGNHAN (MaNV, MaMB)


VALUES
('567354612', '747'),
('142519864', '340'),
('567354612', '737'),
('142519864', '320'),
('567354612', '757'),
('269734834', '747'),
('567354612', '777'),
('269734834', '737'),
('567354612', '767'),
('269734834', '340'),
('567354612', '727'),
('269734834', '757'),
('567354612', '340'),
('269734834', '777'),
('552455318', '737'),
('269734834', '767'),
('552455318', '319'),
('269734834', '320'),
('552455318', '747'),
('269734834', '319'),
('552455318', '767'),
('269734834', '727'),
('390487451', '340'),
('269734834', '154'),
('390487451', '320'),
('242518965', '737'),
('390487451', '319'),
('242518965', '757'),
('274878974', '757'),
('141582651', '737'),
('274878974', '767'),
('141582651', '757'),
('355548984', '154'),
('141582651', '767'),
('310454876', '154'),
('011564812', '737'),
('142519864', '747'),
('011564812', '757'),
('142519864', '757'),
('574489457', '154'),
('142519864', '777'),
('142519864', '767'),
('142519864', '737');

-- 1. Cac chuyen bay di Da Lat (DAD):


SELECT *
FROM CHUYENBAY
WHERE GaDi = 'DAD';

-- 2. Cac loai may bay co tam bay lon hon 10,000km:


SELECT *
FROM MAYBAY
WHERE TamBay > 10000;

-- 3. Nhan vien co luong nho hon 10,000:


SELECT *
FROM NHANVIEN
WHERE Luong < 10000;

-- 4. Cac chuyen bay co do dai duong bay nho hon 10,000km va lon hon 8,000km:
SELECT *
FROM CHUYENBAY
WHERE DoDai BETWEEN 8000 AND 10000;

-- 5. Cac chuyen bay tu Sai Gon (SGN) di Ban Me Thuoc (BMV):


SELECT *
FROM CHUYENBAY
WHERE GaDi = 'SGN' AND GaDen = 'BMV';

-- 6. So chuyen bay xuat phat tu Sai Gon (SGN):


SELECT COUNT(*) AS "So chuyen bay ga di la Sai Gon"
FROM CHUYENBAY
WHERE GaDi = 'SGN';

-- 7. So loai may bay Boeing:


SELECT COUNT(*) AS "So loai may bay Boeing"
FROM MAYBAY
WHERE [Hieu] LIKE 'Boeing%';

-- 8. Tong so luong phai tra cho cac nhan vien:


SELECT SUM(Luong) AS "Tong luong phai tra cho nhan vien"
FROM NHANVIEN;

-- 9. Ma so cua cac phi cong lai may bay Boeing:


SELECT CN.MaNV AS "Ma nhan vien",
CN.MaMB AS "Ma may bay"
FROM CHUNGNHAN CN, MAYBAY MB
WHERE CN.MaMB = MB.MaMB AND MB.Hieu LIKE 'Boeing%';

-- 10. Nhan vien co the lai may bay co ma so 747:


SELECT NV.MaNV AS "Ma nhan vien",
NV.Ten AS "Ten nhan vien"
FROM NHANVIEN NV, CHUNGNHAN CN
WHERE NV.MaNV = CN.MaNV AND CN.MaMB = 747;

-- 11. Ma so cac loai may bay ma nhan vien co ho Nguyen co the lai:
SELECT DISTINCT CN.MaMB
FROM CHUNGNHAN CN, NHANVIEN NV
WHERE CN.MaNV = NV.MaNV AND NV.Ten LIKE 'Nguyen%';

-- 12. Ma so cac phi cong lai duoc Boeing và lai duoc Airbus:
SELECT CN.MaNV AS "Ma so phi cong"
FROM CHUNGNHAN CN, MAYBAY MB
WHERE CN.MaMB = MB.MaMB AND MB.Hieu LIKE 'Boeing%' AND CN.MaNV IN
(
SELECT CN2.MaNV
FROM CHUNGNHAN CN2, MAYBAY MB2
WHERE CN2.MaMB = MB2.MaMB AND MB2.Hieu LIKE 'Airbus%'
);

-- 13. Cac loai may bay co the thuc hien chuyen bay VN280:
SELECT DISTINCT MB.Hieu AS "Ten loai may bay"
FROM MAYBAY MB, CHUYENBAY CB
WHERE MB.MaMB = CB.MaMB AND CB.MaCB = 'VN280';

-- 14. Cac chuyen bay co the duoc thuc hien boi may bay Airbus A320:
SELECT CB.*
FROM CHUYENBAY AS CB, MAYBAY AS MB
WHERE CB.MaMB = MB.MaMB AND MB.Hieu = 'Airbus A320';

-- 15. Ten cua cac phi cong lai may bay Boeing:
SELECT DISTINCT NV.Ten AS "Ten phi cong lai Boeing"
FROM NHANVIEN AS NV, CHUNGNHAN AS CN
JOIN MAYBAY MB ON CN.MaMB = MB.MaMB
WHERE NV.MaNV = CN.MaNV AND MB.Hieu LIKE 'Boeing%';

-- 16. Tong so phi cong co the lai tung loai may bay:
SELECT MB.MaMB AS "Ma so may bay",
MB.Hieu AS "Ten may bay",
COUNT(CN.MaNV) AS "So luong phi cong"
FROM MAYBAY AS MB, CHUNGNHAN AS CN
WHERE MB.MaMB = CN.MaMB
GROUP BY MB.MaMB, MB.Hieu;

-- 17. Gia su mot hanh khach muon di thang tu ga A den ga B roi quay tro ve ga A.
-- Cho biet cac duong bay nao co the dap ung yeu cau nay.
-- Cac duong bay tu A den B va quay tro lai A
SELECT CB1.MaCB AS "Chuyen bay AB",
CB1.GaDi AS "Ga di AB",
CB1.GaDen AS "Ga den AB",
CB2.MaCB AS "Chuyen Bay BA",
CB2.GaDi AS "Ga Di BA",
CB2.GaDen AS "Ga Den BA"
FROM CHUYENBAY CB1, CHUYENBAY CB2
WHERE CB1.GaDi = CB2.GaDen AND CB1.GaDen = CB2.GaDi;

--18) Với mỗi ga có chuyến bay xuất phát từ đó cho biết có bao nhiêu chuyến bay
khởi
--hành từ ga đó.
SELECT GaDi AS "Ga di", COUNT(*) AS "So chuyen bay"
FROM CHUYENBAY
GROUP BY GaDi;

--19) Với mỗi ga có chuyến bay xuất phát từ đó cho biết tổng chi phí phải trả cho
phi công
--lái các chuyến bay khởi hành từ ga đó.
SELECT GaDi AS "Ga di", SUM(ChiPhi) AS "Tong chi phi"
FROM CHUYENBAY
GROUP BY GaDi;

--20) Với mỗi địa điểm xuất phát cho biết có bao nhiêu chuyến bay có thể khởi hành
trước
--12:00.
SELECT GaDi AS "Ga di", COUNT(*) AS "So Chuyen Bay Truoc 12h"
FROM CHUYENBAY
WHERE GioDi < '12:00'
GROUP BY GaDi;

--21) Cho biết mã số của các phi công chỉ lái được 3 loại máy bay.
SELECT DISTINCT CN.MaNV AS "Ma so phi cong chi lai duoc 3 loai may bay"
FROM CHUNGNHAN CN
GROUP BY CN.MaNV
HAVING COUNT(*) >= 3;

--22) Với mỗi phi công có thể lái nhiều hơn 3 loại máy bay, cho biết mã số phi công

--tầm bay lớn nhất của các loại máy bay mà phi công đó có thể lái.
SELECT CN.MaNV AS "Ma so phi cong",
MAX(MB.TamBay) AS "Tam Bay Lon Nhat"
FROM CHUNGNHAN CN, MAYBAY MB
WHERE CN.MaMB = MB.MaMB
GROUP BY CN.MaNV, MB.Hieu;

--23) Với mỗi phi công cho biết mã số phi công và tổng số loại máy bay mà phi công
đó
--có thể lái.
SELECT CN.MaNV AS "Ma so phi cong",
COUNT(DISTINCT MB.Hieu) AS "Tong So Loai May Bay"
FROM CHUNGNHAN CN, MAYBAY MB
WHERE CN.MaMB = MB.MaMB
GROUP BY CN.MaNV;

--24) Cho biết mã số của các phi công có thể lái được nhiều loại máy bay nhất.
SELECT TOP 1 CN.MaNV AS "Ma so phi cong"
FROM CHUNGNHAN CN, MAYBAY MB
WHERE CN.MaMB = MB.MaMB
GROUP BY CN.MaNV
ORDER BY COUNT(DISTINCT MB.Hieu) DESC

--25) Cho biết mã số của các phi công có thể lái được ít loại máy bay nhất.
SELECT TOP 1 CN.MaNV AS "Ma so phi cong"
FROM CHUNGNHAN CN, MAYBAY MB
WHERE CN.MaMB = MB.MaMB
GROUP BY CN.MaNV
ORDER BY COUNT(DISTINCT MB.Hieu) ASC

--26) Tìm các nhân viên không phải là phi công.


SELECT *
FROM NHANVIEN
WHERE MaNV NOT IN (SELECT DISTINCT MaNV
FROM CHUNGNHAN);

--27) Cho biết mã số của các nhân viên có lương cao nhất.
SELECT MaNV AS "Ma so nhan vien"
FROM NHANVIEN
ORDER BY Luong DESC

--28) Cho biết tổng số lương phải trả cho các phi công.
SELECT SUM(Luong) AS "Tong Luong Phi Cong"
FROM NHANVIEN
WHERE MaNV IN (SELECT DISTINCT MaNV FROM CHUNGNHAN);

--29) Tìm các chuyến bay có thể được thực hiện bởi tất cả các loại máy bay Boeing.
SELECT DISTINCT MaCB AS "Ma so chuyen bay"
FROM CHUYENBAY
WHERE MaMB IN (SELECT MaMB
FROM MAYBAY
WHERE Hieu LIKE 'Boeing%')
AND MaCB NOT IN (SELECT DISTINCT MaCB
FROM CHUYENBAY
WHERE MaMB NOT IN (SELECT MaMB
FROM
MAYBAY
WHERE Hieu
LIKE 'Boeing%')
);
--30) Cho biết mã số của các máy bay có thể được sử dụng để thực hiện chuyến bay từ
Sài
--Gòn (SGN) đến Huế (HUI).
SELECT DISTINCT MaMB AS "Ma so may bay"
FROM CHUYENBAY
WHERE GaDi = 'SGN' AND GaDen = 'HUI';

--31) Tìm các chuyến bay có thể được lái bởi các phi công có lương lớn hơn 100,000.
SELECT DISTINCT MaCB AS "Ma so chuyen bay"
FROM CHUYENBAY
WHERE MaMB IN
(SELECT MaMB
FROM CHUNGNHAN
WHERE MaNV IN
(SELECT MaNV
FROM NHANVIEN
WHERE Luong > 100000)
);

--32) Cho biết tên các phi công có lương nhỏ hơn chi phí thấp nhất của đường bay từ
Sài
--Gòn (SGN) đến Buôn Mê Thuộc (BMV).
SELECT NV.Ten AS "Ten phi cong",
NV.Luong AS "Tien luong"
FROM NHANVIEN NV
JOIN CHUNGNHAN CN ON NV.MaNV = CN.MaNV
JOIN CHUYENBAY CB ON CN.MaMB = CB.MaMB
WHERE CB.GaDi = 'SGN' AND CB.GaDen = 'BMV' AND NV.Luong < (SELECT TOP 1 CB.ChiPhi

FROM [dbo].[CHUYENBAY]

ORDER BY [ChiPhi] ASC);

--33) Cho biết mã số của các phi công có lương cao nhất.
SELECT TOP 1 MaNV AS "Ma so phi cong co luong cao nhat"
FROM NHANVIEN
ORDER BY Luong DESC

--34) Cho biết mã số của các nhân viên có lương cao thứ nhì.
SELECT MaNV
FROM NHANVIEN
ORDER BY Luong DESC
OFFSET 1 ROW FETCH NEXT 1 ROW ONLY;

--35) Cho biết mã số của các nhân viên có lương cao thứ nhất hoặc thứ nhì.

--36) Cho biết tên và lương của các nhân viên không phải là phi công và có lương
lớn hơn
--lương trung bình của tất cả các phi công.
SELECT Ten AS "Ten nhan vien",
Luong AS "Tien luong"
FROM NHANVIEN
WHERE MaNV NOT IN (SELECT MaNV
FROM CHUNGNHAN)
AND Luong > (SELECT AVG(Luong)
FROM NHANVIEN
WHERE MaNV IN (SELECT MaNV
FROM CHUNGNHAN)
);
--37) Cho biết tên các phi công có thể lái các máy bay có tầm bay lớn hơn 4,800km
nhưng
--không có chứng nhận lái máy bay Boeing.
SELECT DISTINCT NV.Ten AS "Ten nhan vien"
FROM CHUNGNHAN CN, NHANVIEN NV, MAYBAY MB
WHERE CN.MaNV = NV.MaNV AND CN.MaMB = MB.MaMB AND MB.TamBay > 4800
AND MB.Hieu NOT IN (SELECT MB.Hieu
FROM MAYBAY
WHERE MB.Hieu LIKE 'boeing%')

--38) Cho biết tên các phi công lái ít nhất 3 loại máy bay có tầm bay xa hơn
3200km.
SELECT NV.Ten AS "Ten phi cong"
FROM [dbo].[CHUNGNHAN] CN, [dbo].[NHANVIEN] NV, [dbo].[MAYBAY] MB
WHERE CN.MaNV = NV.MaNV AND CN.MaMB = MB.MaMB AND MB.TamBay >= 3200
GROUP BY NV.Ten
HAVING COUNT(DISTINCT MB.Hieu) >= 3

--39) Với mỗi nhân viên cho biết mã số, tên nhân viên và tổng số loại máy bay mà
nhân
--viên đó có thể lái.
SELECT NV.MaNV AS "Ma so nhan vien",
NV.Ten AS "Ten nhan vien", COUNT(DISTINCT CN.MaMB) AS "Tong so loai may
bay"
FROM CHUNGNHAN CN, NHANVIEN NV, MAYBAY MB
WHERE NV.MaNV IN (SELECT CN.MaNV FROM CHUNGNHAN)
GROUP BY NV.MaNV, NV.Ten;

--40) Với mỗi nhân viên cho biết mã số, tên nhân viên và tổng số loại máy bay
Boeing mà
--nhân viên đó có thể lái.
SELECT NV.MaNV AS "Ma nhan vien",
NV.Ten AS "Ten nhan vien",
COUNT(DISTINCT MB.MaMB) AS "Tong So Loai May Bay"
FROM NHANVIEN NV, CHUNGNHAN CN, MAYBAY MB
WHERE NV.MaNV = CN.MaNV AND CN.MaMB = MB.MaMB AND MB.Hieu LIKE 'Boeing%'
GROUP BY NV.MaNV, NV.Ten

--41) Với mỗi loại máy bay cho biết loại máy bay và tổng số phi công có thể lái
loại máy
--bay đó.
SELECT DISTINCT MB.Hieu AS "Loai may bay",
COUNT(DISTINCT CN.MaNV) AS "Tong So Phi Cong"
FROM MAYBAY MB, CHUNGNHAN CN
WHERE MB.MaMB = CN.MaMB
GROUP BY MB.Hieu;

--42) Với mỗi loại máy bay cho biết loại máy bay và tổng số chuyến bay không thể
thực
--hiện bởi loại máy bay đó.
SELECT MB.Hieu AS "Loai May Bay",
COUNT(DISTINCT CB.MaCB) AS "Tong So Chuyen Bay Khong The Thuc Hien"
FROM MAYBAY MB, CHUYENBAY CB
WHERE MB.MaMB = CB.MaMB AND CB.MaCB IS NULL
GROUP BY MB.Hieu;

--43) Với mỗi loại máy bay cho biết loại máy bay và tổng số phi công có lương lớn
hơn
--100,000 có thể lái loại máy bay đó.
SELECT DISTINCT MB.Hieu AS "Loai May Bay",
COUNT(DISTINCT CN.MaNV) AS "Tong So Phi Cong Luong Lon Hon 100k"
FROM MAYBAY MB, CHUNGNHAN CN, NHANVIEN NV
WHERE MB.MaMB = CN.MaMB AND CN.MaNV = NV.MaNV AND NV.Luong > 100000
GROUP BY MB.Hieu;

--44) Với mỗi loại máy bay có tầm bay trên 3200km, cho biết tên của loại máy bay và
--lương trung bình của các phi công có thể lái loại máy bay đó.
SELECT DISTINCT MB.Hieu AS "Loai May Bay",
AVG(NV.Luong) AS "Luong Trung Binh"
FROM MAYBAY MB, CHUNGNHAN CN, NHANVIEN NV
WHERE MB.MaMB = CN.MaMB AND CN.MaNV = NV.MaNV AND MB.TamBay > 3200
GROUP BY MB.Hieu;

--45) Với mỗi loại máy bay cho biết loại máy bay và tổng số nhân viên không thể lái
loại
--máy bay đó.
SELECT MB.Hieu AS "Loai May Bay",
COUNT(DISTINCT NV.MaNV) AS "Tong So Nhan Vien Khong The Lai"
FROM MAYBAY MB, CHUNGNHAN CN, NHANVIEN NV
WHERE MB.MaMB = CN.MaMB AND
CN.MaNV = NV.MaNV AND
CN.MaNV NOT IN (SELECT MaNV
FROM CHUNGNHAN CN1, MAYBAY MB1
WHERE CN1.MaMB = MB1.MaMB AND MB.MaMB IS NULL)
GROUP BY MB.Hieu;

--46) Với mỗi loại máy bay cho biết loại máy bay và tổng số phi công không thể lái
loại
--máy bay đó.
SELECT MB.Hieu AS "Loai May Bay",
COUNT(DISTINCT NV.MaNV) AS "Tong So Phi Cong Khong The Lai"
FROM MAYBAY MB, CHUNGNHAN CN, NHANVIEN NV
WHERE MB.MaMB = CN.MaMB AND CN.MaNV = NV.MaNV AND CN.MaNV IS NULL
GROUP BY MB.Hieu;

--47) Với mỗi nhân viên cho biết mã số, tên nhân viên và tổng số chuyến bay xuất
phát từ
--Sài Gòn mà nhân viên đó có thể lái.
SELECT NV.MaNV AS "Ma so nhan vien",
NV.Ten AS "Ten nhan vien",
COUNT(DISTINCT CB.MaCB) AS "Tong So Chuyen Bay Co The Lai"
FROM NHANVIEN NV, CHUNGNHAN CN, CHUYENBAY CB
WHERE NV.MaNV = CN.MaNV AND CN.MaMB = CB.MaMB AND CB.GaDi = 'SGN'
GROUP BY NV.MaNV, NV.Ten;

--48) Với mỗi nhân viên cho biết mã số, tên nhân viên và tổng số chuyến bay xuất
phát từ
--Sài Gòn mà nhân viên đó không thể lái.
SELECT NV.MaNV AS "Ma nhan vien",
NV.Ten AS "Ten nhan vien",
COUNT(DISTINCT CB.MaCB) AS "Tong So Chuyen Bay Khong The Lai"
FROM NHANVIEN NV, CHUNGNHAN CN, CHUYENBAY CB
WHERE NV.MaNV = CN.MaNV AND CN.MaMB = CB.MaMB AND CB.GaDi = 'SGN' AND CN.MaNV IS
NULL
GROUP BY NV.MaNV, NV.Ten;

--49) Với mỗi phi công cho biết mã số, tên phi công và tổng số chuyến bay xuất phát
từ
--Sài Gòn mà phi công đó có thể lái.
SELECT NV.MaNV AS "Ma nhan vien",
NV.Ten AS "Ten nhan vien",
COUNT(DISTINCT CB.MaCB) AS "Tong So Chuyen Bay Co The Lai"
FROM NHANVIEN NV, CHUNGNHAN CN, CHUYENBAY CB
WHERE NV.MaNV = CN.MaNV AND CN.MaMB = CB.MaMB AND CB.GaDi = 'SGN'
GROUP BY NV.MaNV, NV.Ten;

--50) Với mỗi phi công cho biết mã số, tên phi công và tổng số chuyến bay xuất phát
từ
--Sài Gòn mà phi công đó không thể lái.
SELECT NV.MaNV AS "Ma nhan vien",
NV.Ten AS "Ten nhan vien",
COUNT(DISTINCT CB.MaCB) AS "Tong So Chuyen Bay Khong The Lai"
FROM NHANVIEN NV, CHUNGNHAN CN, CHUYENBAY CB
WHERE NV.MaNV = CN.MaNV AND CN.MaMB = CB.MaMB AND CB.GaDi = 'SGN' AND CN.MaNV IS
NULL
GROUP BY NV.MaNV, NV.Ten;

--51) Với mỗi chuyến bay cho biết mã số chuyến bay và tổng số loại máy bay không
thể
--thực hiện chuyến bay đó.
SELECT CB.MaCB AS "Ma chuyen bay",
COUNT(DISTINCT MB.MaMB) AS "Tong So Loai May Bay Khong The Thuc Hien"
FROM CHUYENBAY CB, MAYBAY MB
WHERE CB.MaMB = MB.MaMB AND MB.MaMB IS NULL
GROUP BY CB.MaCB;

--52) Với mỗi chuyến bay cho biết mã số chuyến bay và tổng số loại máy bay có thể
thực
--hiện chuyến bay đó.
SELECT CB.MaCB AS "Ma chuyen bay",
COUNT(DISTINCT MB.MaMB) AS "Tong So Loai May Bay Co The Thuc Hien"
FROM CHUYENBAY CB, MAYBAY MB
WHERE CB.MaMB = MB.MaMB
GROUP BY CB.MaCB;

--53) Với mỗi chuyến bay cho biết mã số chuyến bay và tổng số nhân viên không thể
lái
--chuyến bay đó.
SELECT CB.MaCB AS "Ma chuyen bay",
COUNT(DISTINCT NV.MaNV) AS "Tong So Nhan Vien Khong The Lai"
FROM CHUYENBAY CB, CHUNGNHAN CN, NHANVIEN NV
WHERE CB.MaMB = CN.MaMB AND CN.MaNV = NV.MaNV AND CN.MaNV IS NULL
GROUP BY CB.MaCB;

--54) Với mỗi chuyến bay cho biết mã số chuyến bay và tổng số phi công không thể
lái
--chuyến bay đó.
SELECT CB.MaCB AS "Ma chuyen bay",
COUNT(DISTINCT CN.MaNV) AS "Tong So Phi Cong Khong The Lai"
FROM CHUYENBAY CB, CHUNGNHAN CN
WHERE CB.MaMB = CN.MaMB AND CN.MaNV IS NULL
GROUP BY CB.MaCB;

--55) Một hành khách muốn đi từ Hà Nội (HAN) đến Nha Trang (CXR) mà không phải
--đổi chuyến bay quá một lần. Cho biết mã chuyến bay và thời gian khởi hành từ Hà
--Nội nếu hành khách muốn đến Nha Trang trước 16:00.
SELECT CB.MaCB AS "Ma chuyen bay",
CB.GaDi AS "Ga di",
CB.GaDen AS "Ga den",
CB.GioDi AS "Gio den"
FROM CHUYENBAY CB
WHERE CB.GaDi = 'HAN' AND CB.GaDen = 'CXR' AND CB.GioDi < '16:00';

--56) Cho biết tên các loại máy bay mà tất cả các phi công có thể lái đều có lương
lớn hơn
--200,000.
SELECT MB.Hieu AS "Loai May Bay"
FROM MAYBAY MB, CHUNGNHAN CN, NHANVIEN NV
WHERE MB.MaMB = CN.MaMB AND CN.MaNV = NV.MaNV AND NV.Luong > 200000
GROUP BY MB.Hieu
HAVING COUNT(DISTINCT NV.MaNV) = (SELECT COUNT(DISTINCT MaNV) FROM NHANVIEN);

--57) Cho biết thông tin của các đường bay mà tất cả các phi công có thể bay trên
đường
--bay đó đều có lương lớn hơn 100,000.
SELECT CB.MaCB, CB.GaDi, CB.GaDen, CB.GioDi, CB.GioDen, CB.ChiPhi
FROM CHUYENBAY CB, CHUNGNHAN CN
WHERE CN.MaNV = CN.MaNV AND CB.ChiPhi > 100000
AND CN.MaNV IN (SELECT DISTINCT CN.MaNV
FROM CHUNGNHAN CN, NHANVIEN NV
WHERE CN.MaMB = CB.MaMB AND CN.MaNV = NV.MaNV AND NV.Luong >
100000);

--58) Cho biết tên các phi công chỉ lái các loại máy bay có tầm bay xa hơn 3200km.
SELECT DISTINCT NV.Ten AS "Ten phi cong"
FROM NHANVIEN NV, CHUNGNHAN CN, MAYBAY MB
WHERE NV.MaNV = CN.MaNV AND CN.MaMB = MB.MaMB AND MB.TamBay > 3200
AND MB.Hieu NOT IN (SELECT DISTINCT MB.Hieu
FROM MAYBAY MB, CHUNGNHAN CN
WHERE MB.MaMB = CN.MaMB AND CN.MaNV = NV.MaNV AND
MB.TamBay <= 3200);

--59) Cho biết tên các phi công chỉ lái các loại máy bay có tầm bay xa hơn 3200km

--một trong số đó là Boeing.
SELECT DISTINCT NV.Ten
FROM NHANVIEN NV, CHUNGNHAN CN, MAYBAY MB
WHERE NV.MaNV = CN.MaNV AND CN.MaMB = MB.MaMB AND MB.TamBay > 3200
AND MB.Hieu LIKE 'Boeing%'
AND MB.Hieu NOT IN (SELECT DISTINCT MB.Hieu
FROM MAYBAY MB, CHUNGNHAN CN
WHERE MB.MaMB = CN.MaMB AND CN.MaNV = NV.MaNV AND
MB.TamBay <= 3200);

--60) Tìm các phi công có thể lái tất cả các loại máy bay.
SELECT NV.Ten AS "Ten phi cong"
FROM NHANVIEN NV, MAYBAY MB, CHUNGNHAN CN
WHERE MB.MaMB = CN.MaMB AND NV.MaNV = CN.MaNV
GROUP BY NV.Ten
HAVING COUNT(DISTINCT MB.Hieu) = 10;

--61) Tìm các phi công có thể lái tất cả các loại máy bay Boeing.
SELECT NV.Ten
FROM NHANVIEN NV, CHUNGNHAN CN, MAYBAY MB
WHERE NV.MaNV = CN.MaNV AND MB.MaMB = CN.MaMB AND MB.Hieu LIKE 'Boeing%'
GROUP BY NV.Ten
HAVING COUNT(DISTINCT MB.Hieu) = 6;

You might also like