Lab 4
Lab 4
--25
SELECT e.empSSN, e.empName, d.depName FROM tblEmployee e
JOIN (SELECT e.empSSN, COUNT(e.empSSN) AS soLanThamGiaDuAn FROM tblEmployee e JOIN
tblWorksOn w ON e.empSSN = w.empSSN
GROUP BY e.empSSN HAVING COUNT(e.empSSN) >= 2) b ON e.empSSN = b.empSSN
JOIN tblDepartment d ON d.depNum = e.depNum
--26
SELECT p.proNum, p.proName, b.soLuongThanhVien AS N'Số lượng thành viên’ FROM
tblProject
p
JOIN (SELECT proNum, COUNT(empSSN) AS soLuongThanhVien FROM tblWorksOn GROUP BY
proNum) b
ON b.proNum = p.proNum
--27
SELECT p.proNum, p.proName, d.thoiGian AS N'Tổng số giờ làm việc’ FROM tblProject p
JOIN (SELECT proNum, SUM(workHours) AS thoiGian FROM tblWorksOn GROUP BY proNum) d
ON
p.proNum = d.proNum
--28
SELECT p.proNum, p.proName, a.soLuongNhanVien FROM
(SELECT proNum, COUNT(empSSN) AS soLuongNhanVien FROM tblWorksOn GROUP BY proNum) a
JOIN tblProject p ON p.proNum = a.proNum WHERE a.soLuongNhanVien = (SELECT
MIN(soLuongNhanVien) FROM (SELECT proNum, COUNT(empSSN)
AS soLuongNhanVien FROM tblWorksOn GROUP BY proNum) a)
--29
SELECT p.proNum, p.proName, a.soLuongNhanVien FROM
(SELECT proNum, COUNT(empSSN) AS soLuongNhanVien FROM tblWorksOn GROUP BY proNum) a
JOIN tblProject p ON p.proNum = a.proNum
WHERE a.soLuongNhanVien = (SELECT MAX(soLuongNhanVien) FROM (SELECT proNum,
COUNT(empSSN)
AS soLuongNhanVien FROM tblWorksOn GROUP BY proNum) a)
--30
SELECT p.proNum, p.proName, d.thoiGian AS N'Tổng số giờ làm’
FROM (SELECT proNum, SUM(workHours) AS thoiGian FROM tblWorksOn GROUP BY proNum) d
JOIN
tblProject p ON p.proNum = d.proNum
WHERE d.thoiGian = (SELECT MIN(thoiGian) FROM (SELECT proNum, SUM(workHours) AS
thoiGian
FROM tblWorksOn GROUP BY proNum) a)
--31
SELECT p.proNum, p.proName, d.thoiGian AS N’Tổng số giờ làm’
FROM (SELECT proNum, SUM(workHours) AS thoiGian FROM tblWorksOn GROUP BY proNum) d
JOIN
tblProject p ON p.proNum = d.proNum
WHERE d.thoiGian = (SELECT MAX(thoiGian) FROM (SELECT proNum, SUM(workHours) AS
thoiGian
FROM tblWorksOn GROUP BY proNum) a)
--32
SELECT l.locName, COUNT(depNum) AS N'Số lượng phòng ban’ FROM tblDepLocation d JOIN
tblLocation l ON d.locNum = l.locNum GROUP BY l.locName
--33
SELECT l.depNum, l.depName, COUNT(d.locNum) AS N'Số lượng chỗ làm’ FROM
tblDepLocation d
JOIN tblDepartment l ON d.depNum = l.depNum GROUP BY l.depNum, l.depName
--34
SELECT l.depNum, l.depName, COUNT(d.locNum) AS N'Số lượng chỗ làm’ FROM
tblDepLocation d
JOIN tblDepartment l ON d.depNum = l.depNum
GROUP BY l.depNum, l.depName
HAVING COUNT(d.locNum) = (SELECT MAX(d.soLuongChoLam) FROM (SELECT COUNT(locNum) as
soLuongChoLam FROM tblDepLocation d GROUP BY depNum) d)
--35
SELECT l.depNum, l.depName, COUNT(d.locNum) AS N'Số lượng chỗ làm’FROM
tblDepLocation d
JOIN tblDepartment l ON d.depNum = l.depNum
GROUP BY l.depNum, l.depName
HAVING COUNT(d.locNum) = (SELECT MIN(d.soLuongChoLam) FROM (SELECT COUNT(locNum) as
soLuongChoLam FROM tblDepLocation d GROUP BY depNum) d)
--36
SELECT l.locName, COUNT(depNum) AS N’Số lượng phòng ban’ FROM tblDepLocation d JOIN
tblLocation l ON d.locNum = l.locNum
GROUP BY l.locName
HAVING COUNT(depNum) = (SELECT MAX(a.soLuongPhongBan) FROM (SELECT locNum,
COUNT(depNum)
As soLuongPhongBan FROM tblDepLocation GROUP BY locNum) a
--37
SELECT l.locName, COUNT(depNum) AS N’Số lượng phòng ban’ FROM tblDepLocation d JOIN
tblLocation l ON d.locNum = l.locNum GROUP BY l.locName HAVING COUNT(depNum) =
(SELECT MIN(a.soLuongPhongBan) FROM (SELECT locNum, COUNT(depNum) As
soLuongPhongBan FROM tblDepLocation GROUP BY locNum) a
--38
SELECT e.empSSN, e.empName, COUNT(e.empSSN) AS N'Số lượng người phụ thuộc’ FROM
tblDependent de JOIN tblEmployee e ON e.empSSN = de.empSSN GROUP BY e.empSSN,
e.empName
HAVING COUNT(e.empSSN) =
(SELECT MIN(a.sl) FROM (SELECT COUNT(e.empSSN) AS sl FROM tblDependent de JOIN
tblEmployee e ON e.empSSN = de.empSSN GROUP BY de.empSSN) a)
--39
SELECT e.empSSN, e.empName, COUNT(e.empSSN) AS N'Số lượng người phụ thuộc’ FROM
tblDependent de JOIN tblEmployee e ON e.empSSN = de.empSSN GROUP BY e.empSSN,
e.empName
HAVING COUNT(e.empSSN) =
(SELECT MAX(a.sl) FROM (SELECT COUNT(e.empSSN) AS sl FROM tblDependent de JOIN
tblEmployee e ON e.empSSN = de.empSSN GROUP BY de.empSSN) a)
--40
SELECT e.empSSN, e.empName, d.depName FROM
tblEmployee e LEFT JOIN tblDependent de ON e.empSSN = de.empSSN
JOIN tblDepartment d ON d.depNum = e.depNum WHERE de.empSSN IS NULL
--45
SELECT d.depNum, d.depName, a.soLuong AS N'Số lượng dự án’ FROM (SELECT depNum,
COUNT(proNum) as soLuong FROM tblProject GROUP BY depNum) a JOIN tblDepartment d
ON a.depNum = d.depNum
--46
SELECT d.depNum, d.depName, COUNT(proNum) AS N'Số lượng dự án’ FROM tblProject p
JOIN
tblDepartment d ON p.depNum = d.depNum GROUP BY d.depNum, d.depName
HAVING COUNT(proNum) = (SELECT MIN(b.soLuong) FROM (SELECT COUNT(proNum) as soLuong
FROM
tblProject GROUP BY depNum) b)
--47
SELECT d.depNum, d.depName, COUNT(proNum) AS N'Số lượng dự án’ FROM tblProject p
JOIN
tblDepartment d ON p.depNum = d.depNum GROUP BY d.depNum, d.depName
HAVING COUNT(proNum) = (SELECT MAX(b.soLuong) FROM (SELECT COUNT(proNum) as soLuong
FROM
tblProject GROUP BY depNum) b)
--48
SELECT a.depNum, a.depName, a.sl AS N'Số lượng nhân viên’ , p.proName FROM
tblProject p
JOIN
(SELECT d.depNum, d.depName, COUNT(e.empSSN) AS sl FROM (SELECT DISTINCT empSSN
FROM
tblWorksOn) w
JOIN tblEmployee e ON w.empSSN = e.empSSN
JOIN tblDepartment d ON d.depNum = e.depNum GROUP BY d.depNum, d.depName
HAVING COUNT(e.empSSN) > 5) a ON p.depNum = a.depNum
--49
SELECT e.empSSN, e.empName FROM tblEmployee e JOIN tblDepartment d ON e.depNum =
d.depNum
WHERE d.depName = N’Phòng nghiên cứu và phát triển’AND e.supervisorSSN IS NULL
--50
SELECT a.empSSN, a.empName, COUNT(workHours) AS N’Tổng số giờ làm’ FROM (SELECT
e.empSSN, e.empName FROM tblEmployee e WHERE e.supervisorSSN IS NULL) a JOIN
tblWorksOn w
ON w.empSSN = a.empSSN GROUP BY a.empSSN, a.empName
--51
SELECT a.empSSN, a.empName, a.sl AS N’Số lượng người phụ thuộc’ , e.workHours FROM
(SELECT empSSN, SUM(workHours) AS workHours FROM tblWorksOn GROUP BY empSSN) e
JOIN (SELECT e.empSSN, e.empName, COUNT(e.empSSN) AS sl FROM tblDependent de JOIN
tblEmployee e ON e.empSSN = de.empSSN GROUP BY e.empSSN, e.empName
HAVING COUNT(e.empSSN) >= 3) a ON e.empSSN = a.empSSN
--52
SELECT e.empSSN, e.empName, SUM(workHours) AS 'Tổng số giờ làm’ FROM (SELECT * FROM
tblEmployee WHERE empName = N'Mai Duy An') a JOIN tblEmployee e
ON e.supervisorSSN = a.empSSN JOIN tblWorksOn w ON w.empSSN = e.empSSN GROUP BY
e.empSSN,
e.empName