0% found this document useful (0 votes)
9 views

Lab 4

Uploaded by

buidangduy243
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Lab 4

Uploaded by

buidangduy243
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

--1

SELECT e.empSSN, e.empName, e.depNum, d.depName FROM tblDepartment d JOIN


tblEmployee e
on d.mgrSSN = e.empSSN WHERE d.depName = N'Phòng Nghiên Cứu và Phát triển’ ;
--2
SELECT p.depNum, p.proName, d.depName FROM tblProject p JOIN tblDepartment d on
d.depNum
= p.depNum WHERE d.depName = N'Phòng Nghiên Cứu và Phát triển’ ;
--3
SELECT b.proNum, b.proName, d.depName FROM tblDepartment d JOIN (SELECT * FROM
tblProject p WHERE p.proName = 'ProjectB') b ON d.depNum = b.depNum;
--4
SELECT e.empSSN, e.empName FROM tblEmployee e JOIN (SELECT e.empSSN FROM
tblEmployee e
WHERE e.empName = N'Mai Duy An') a ON e.supervisorSSN = a.empSSN;
--5
SELECT e.empSSN, e.empName FROM (SELECT * FROM tblEmployee e WHERE e.empName =
N'Mai Duy
An') b JOIN tblEmployee e ON e.empSSN = b.supervisorSSN;
--6
SELECT l.locNum, l.locName FROM (SELECT * FROM tblProject WHERE proName =
'ProjectA') b
JOIN tblLocation l ON b.locNum = l.locNum;
--7
SELECT p.proNum, p.proName FROM (SELECT locNum FROM tblLocation WHERE locName =
N'TP Hồ Chí Minh') l JOIN tblProject p ON l.locNum = p.locNum;
--8
SELECT d.depName as N'Người phụ thuôc’, d.depBirthdate as N'Ngày sinh người phụ
thuộc’
e.empName AS 'Nhân viên phụ thuộc’ FROM
(SELECT * FROM tblDependent WHERE YEAR(GETDATE()) - YEAR(depBirthdate) > 18 ) d
JOIN
tblEmployee e
ON d.empSSN = e.empSSN
--9
SELECT d.depName as N'Người phụ thuôc’, d.depBirthdate as N'Ngày sinh người phụ
thuộc’
e.empName AS 'Nhân viên phụ thuộc’ FROM
(SELECT * FROM tblDependent WHERE depSex = 'M') d JOIN tblEmployee e
ON d.empSSN = e.empSSN
--10
SELECT d.depNum, d.depName, l.locName FROM (SELECT * FROM tblDepartment WHERE
depName =
N'Phòng Nghiên Cứu và Phát triển’ ) d
JOIN tblDepLocation f ON f.depNum = d.depNum JOIN tblLocation l ON f.locNum =
l.locNum
--11
SELECT p.proNum, p.proName, d.depName FROM tblProject p JOIN (SELECT * FROM
tblLocation
WHERE locName = N'TP Hồ Chí Minh') l
ON p.locNum = l.locNum JOIN tblDepartment d ON p.depNum = d.depNum;
--12
SELECT e.empName AS N'Tên nhân viên', de.depName AS N'Têng người phụ thuộc” ,
de.depRelationship FROM tblDependent de JOIN tblEmployee e ON de.empSSN = e.empSSN
JOIN
tblDepartment d ON e.depNum = d.depNum
WHERE de.depSex = 'F' AND d.depName = N'Phòng nghiên cứu và phát triển’
--13
SELECT e.empName AS N'Tên nhân viên', de.depName AS N'Tên người phụ thuộc’ ,
de.depRelationship FROM tblDependent de JOIN tblEmployee e ON de.empSSN = e.empSSN
JOIN
tblDepartment d ON e.depNum = d.depNum
WHERE YEAR(GETDATE()) - YEAR(de.depBirthdate) > 18 AND d.depName = N'Phòng Nghiên
cứu và ptriển
--14
SELECT depSex AS N'Giới tính’, COUNT(depSex) AS N'Số lượng’ FROM tblDependent GROUP
BY
depSex
--15
SELECT depRelationship, COUNT(empSSN) AS N'Số lượng’ FROM tblDependent GROUP BY
depRelationship
--16
SELECT d.depName, COUNT(e.empSSN) FROM tblDependent de JOIN tblEmployee e ON
de.empSSN =
e.empSSN JOIN tblDepartment d ON d.depNum = e.depNum
GROUP BY d.depName
--17
SELECT d.depName, COUNT(e.empSSN) AS N'Số lượng người phụ thuộc’ FROM tblDependent
de
JOIN tblEmployee e ON de.empSSN = e.empSSN JOIN tblDepartment d ON d.depNum =
e.depNum
GROUP BY d.depName HAVING COUNT(e.empSSN) = (SELECT MIN(a.soLuong) FROM (SELECT
d.depName, COUNT(e.empSSN) AS soLuong FROM tblDependent de JOIN tblEmployee e ON
de.empSSN = e.empSSN JOIN tblDepartment d ON d.depNum = e.depNum
GROUP BY d.depName) a)
--18
SELECT d.depName, COUNT(e.empSSN) AS N'Số lượng người phụ thuộc’ FROM tblDependent
de
JOIN tblEmployee e ON de.empSSN = e.empSSN JOIN tblDepartment d ON d.depNum =
e.depNum
GROUP BY d.depName HAVING COUNT(e.empSSN) = (SELECT MAX(a.soLuong) FROM (SELECT
d.depName, COUNT(e.empSSN) AS soLuong FROM tblDependent de JOIN tblEmployee e ON
de.empSSN = e.empSSN JOIN tblDepartment d ON d.depNum = e.depNum
GROUP BY d.depName) a)
--19
SELECT e.empSSN, e.empName, a.soGio AS N'Tổng số giờ’ FROM tblEmployee e JOIN (
SELECT e.empSSN, SUM(w.workHours) AS soGio
FROM tblEmployee e JOIN tblWorksOn w ON e.empSSN = w.empSSN JOIN tblDepartment d ON
e.depNum = d.depNum GROUP BY e.empSSN
) a ON e.empSSN = a.empSSN
--20
SELECT p.depNum, d.depName, SUM(soGio) AS N’Tổng số giờ’ FROM tblProject p JOIN
(SELECT
proNum, SUM(workHours) as soGio FROM tblWorksOn GROUP BY proNum) a
ON p.proNum = a.proNum JOIN tblDepartment d ON p.depNum = d.depNum GROUP BY
p.depNum,
d.depName
--21
SELECT e.empSSN, e.empName, b.soGio FROM tblEmployee e
JOIN (SELECT empSSN, SUM(workHours) as soGio FROM tblWorksOn
GROUP BY empSSN
HAVING SUM(workHours) = (SELECT MIN(a.soGio) as soGioMin
FROM (SELECT empSSN, SUM(workHours) as
soGio FROM tblWorksOn GROUP BY empSSN) a)) b
ON e.empSSN = b.empSSN
--22
SELECT e.empSSN, e.empName, b.soGio FROM tblEmployee e
JOIN (SELECT empSSN, SUM(workHours) as soGio FROM tblWorksOn
GROUP BY empSSN
HAVING SUM(workHours) = (SELECT MAX(a.soGio) as soGioMin
FROM (SELECT empSSN, SUM(workHours) as
soGio FROM tblWorksOn GROUP BY empSSN) a)) b
ON e.empSSN = b.empSSN
--23
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) = 1)
b ON e.empSSN = b.empSSN
JOIN tblDepartment d ON d.depNum = e.depNum=
--24
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.depNu

--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

SELECT e.empName FROM tblDependent de JOIN tblEmployee e ON e.empSSN = de.empSSN


--41
SELECT d.depNum, d.depName FROM tblDepartment d WHERE depNum != ALL(
SELECT DISTINCT e.depNum FROM tblEmployee e LEFT JOIN (SELECT e.empSSN FROM
tblEmployee e LEFT JOIN tblDependent de ON e.empSSN = de.empSSN WHERE
de.empSSN IS NULL) a
ON e.empSSN = a.empSSN WHERE a.empSSN IS NULL
)
--42
SELECT e.empSSN, e.empName, d.depName FROM
tblEmployee e LEFT JOIN tblWorksOn w ON e.empSSN = w.empSSN
JOIN tblDepartment d ON e.depNum = d.depNum WHERE w.empSSN IS NULL
--43
SELECT DISTINCT d.depNum, d.depName FROM tblWorksOn w JOIN tblEmployee e ON
e.empSSN =
w.empSSN JOIN tblDepartment d ON e.depNum = d.depNum
SELECT depNum, depName FROM tblDepartment WHERE depNum != ALL (
SELECT DISTINCT d.depNum FROM tblWorksOn w JOIN tblEmployee e ON e.empSSN =
w.empSSN JOIN
tblDepartment d ON e.depNum = d.depNum)
--44
SELECT DISTINCT d.depNum FROM tblEmployee e JOIN tblWorksOn w ON w.empSSN =
e.empSSN JOIN
tblDepartment d ON e.depNum = d.depNum JOIN tblProject p ON p.depNum = d.depNum
WHERE p.proName = N'ProjectA'

--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

You might also like