You are on page 1of 2

BÀI TẬP THỰC HÀNH SQL

I - Tạo một csdl có tên là DuAn với các bảng dữ liệu được mô tả như hình
sau:

II - Cập nhật dữ liệu cho bảng


III - Viết truy vấn:
--1. Cho biết những NV (MaNV, TenNV, NgaySinh) thuộc ðõn vị 'Ðõn vị 101':
SELECT NHANVIEN.MaNV, TenNV, NgaySinh
FROM NHANVIEN inner join DONVI on NHANVIEN.MaDV=DONVI.MaDV
WHERE TenDV = N'Ðơn vị 101'

--2. Cho biết ds nhân viên thuộc ðõn vị có mã là 01, sắp xếp theo tên,
cùng tên theo ngày sinh
SELECT MaNV, TenNV, NgaySinh
FROM NHANVIEN
WHERE MaDV = N'01'
ORDER BY TenNV, NgaySinh

--3. Tìm những NV có họ 'Nguyễn', tuổi >30:


SELECT MaNV, TenNV, NgaySinh
FROM NHANVIEN
WHERE TenNV Like N'Nguyễn%' and YEAR(GETDATE())-YEAR(NgaySinh)>30

--4. Tìm những NV có ðịa chỉ Hải phòng, thuộc ðõn vị có tên ‘Ðõn vị 101’
SELECT DONVI.MaNV, TenNV, NgaySinh
FROM NHANVIEN inner join DONVI on NHANVIEN.MaDV=DONVI.MaDV
WHERE DiaChi Like N'%Hải Phòng%' and TenDV = N'Ðõn vị 101'

--5. Cho biết những dự án bắt ðầu nãm 2016 do ðõn vị có tên ‘Ðõn vị 102’
phụ trách
SELECT MaDA, TenDA, NgayBD, NgayKT
FROM DUAN inner join DONVI on DUAN.MaDV=DONVI.MaDV
WHERE YEAR(NgayBD)=2016 and TenDV = N'Ðõn vị 101'

--6. Cho biết những ngýời thân của NV có tên là ‘Hùng’ thuộc ðịa chỉ ‘Hà
Nội’
SELECT MaTN, TenTN, THANNHAN.DiaChi, THANNHAN.NgheNghiep, THANNHAN.NamSinh
FROM THANNHAN inner join NHANVIEN on NHANVIEN.MaNV=THANNHAN.MaNV
WHERE THANNHAN.DiaChi Like N'%Hà Nội%' and TenNV like N’%Hùng’

--7. Cho biết những nhân viên tham gia dự án có tên là ‘Xây dựng phần mềm
quản lý giao nhận cảng Nam Ninh, HP’
SELECT NHANVIEN.MaNV, NHANVIEN.TenNV
FROM DUAN inner join THAMGIA on DUAN.MaDA = THAMGIA.MaDA inner join
NHANVIEN on THAMGIA.MaNV = NHANVIEN.MaNV
WHERE TenDA = N'Xây dựng phần mềm quản lý giao nhận cảng Nam Ninh, HP'

--8. Cho biết giờ tham gia các dự án (TenDA, SoGio) của nhân viên ‘Bùi
Tuấn Anh’
SELECT TenDA, SUM(THAMGIA.SoGio) AS SoGio
FROM DUAN inner join THAMGIA on DUAN.MaDA = THAMGIA.MaDA inner join
NHANVIEN on THAMGIA.MaNV = NHANVIEN.MaNV
WHERE TenNV = N'Bùi Tuấn Anh'
GROUP BY DUAN.MaDA, TenDA

--9. Cho biết tổng số giờ các nhân viên tham gia dự án có mã ‘DA01’
SELECT SUM(THAMGIA.SoGio) AS TongSoGio
FROM THAMGIA
WHERE THAMGIA.MaDA = 'DA01'

--10. Cho biết trung bình số giờ tham gia, tổng số nhân viên tham gia, số
giờ cao nhất, số giờ nhỏ nhất của nhân viên tham gia dự án có mã ‘DA01’
SELECT AVG(THAMGIA.SoGio) AS TBGIOTHMAGIA, COUNT(THAMGIA.MANV) AS SONV,
MAX(THAMGIA.SoGio) AS SOGIOCAONHAT, MIN(THAMGIA.SoGio) AS SOGIONHONHAT
FROM THAMGIA
WHERE THAMGIA.MaDA = 'DA01'

--11. Tính tổng số giờ tham gia cho từng dự án (MaDA, TenDA, TongGio)
SELECT THAMGIA.MaDA, DUAN.TenDA, SUM(THAMGIA.SoGio) AS SoGio
FROM DUAN inner join THAMGIA on DUAN.MaDA = THAMGIA.MaDA
GROUP BY THAMGIA.MaDA, DUAN.TenDA

--12. Tính tổng số giờ tham gia cho từng nhân viên (MaNV, TenNV, TongGio)
SELECT THAMGIA.MaNV, NHANVIEN.TenNV, SUM(THAMGIA.SoGio) AS TongSoGio
FROM DUAN inner join THAMGIA on DUAN.MaDA = THAMGIA.MaDA inner join
NHANVIEN on THAMGIA.MaNV = NHANVIEN.MaNV
GROUP BY THAMGIA.MaNV, NHANVIEN.TenNV

You might also like