1. Tạo và nhập dữ liệu. Quy định khóa chính, Bảng NHANVIEN (MANV),
Bảng Phongban(MAPB), Bảng PHANCONG (MANV, MADA).
create table PHONGBAN
(
MAPB text not null,
TENPB text ,
constraint mapb primary key(MAPB)
)
create table PHANCONG
(
MANV text not null
constraint manv references NHANVIEN(MANV),
MADA text not null,
SONGAY number ,
constraint songay primary key (MANV,MADA)
)
2. Hiển thị bảng thanh toán tiền nhân viên gồm các thông tin: MANV,
HOTEN, NSINH, MAPB, SONGAY, LUONG. Trong đó LUONG =
LNGCN * SONGAY.
SELECT A.MANV,A.HOTEN,A.NSINH,B.MAPB,C.SONGAY, C.SONGAY *
A.LNGCN AS LUONG
FROM NHANVIEN A , PHONGBAN B,PHANCONG C
WHERE C.MANV = A.MANV
3. Tạo khung nhìn có tên là DUAN để hiển thị tổng số ngày thực hiện dự án
của mỗi phòng gồm thông tin MAPB, TENPB, TONGSONGAY.
CREATE VIEW DUAN
AS
SELECT A.MAPB,A.TENPB,SUM(SONGAY) AS TONGSONGAY
FROM PHONGBAN A,PHANCONG B
GROUP BY A.MAPB,A.TENPB
4. Dựa vào thông tin của khung nhìn DUAN, hiển thị phòng ban có ngày thực
hiện dự án lớn nhất,
SELECT A.MAPB,A.TENPB, MAX(B.SONGAY) AS SONGAYLONNHAT
FROM PHONGBAN A,PHANCONG B
WHERE SONGAY= (SELECT MAX(B.SONGAY) FROM
PHANCONG,NHANVIEN WHERE NHANVIEN.MANV =
PHANCONG.MANV)
5. Hiển thị nhân viên có số ngày thực hiện dự án cao nhất gồm các thông tin:
MANV, HOTEN, MAPB, TENPB, SONGAY.
SELECT A.MANV,A.HOTEN,B.MAPB,B.TENPB,C.SONGAY
FROM NHANVIEN A,PHONGBAN B,PHANCONG C
WHERE A.MAPB = B.MAPB AND A.MANV = C.MANV AND C.SONGAY =
(SELECT MAX(PHANCONG.SONGAY) FROM PHANCONG , NHANVIEN
WHERE PHANCONG.MANV = NHANVIEN.MANV)
6. Hiển thị các dự án và tổng số ngày thực hiện của những dự án mà không có
trưởng phòng tham gia.
SELECT B.MADA, Sum(B.SONGAY) AS TONGSONGAY
FROM NHANVIEN AS A, PHANCONG AS B
WHERE (((B.MANV)=[A].[MANV]) AND ((A.GHICHU) Is Null))
GROUP BY B.MADA;
7. Hiển thị số lượng nam/nữ của mỗi phòng gồm các thông tin: MAPB,
TENPB, PHAI, SOLUONG.
SELECT B.MAPB,B.TENPB,A.PHAI,COUNT(PHAI) AS SOLUONG
FROM NHANVIEN A,PHONGBAN B
WHERE B.MAPB = A.MAPB
GROUP BY B.MAPB,B.TENPB,A.PHAI
8. Hiển thị nhân viên có số ngày thực hiện dự án bé hơn số ngày trung bình
của mỗi nhân viên thực hiện trong 1 dự án.
SELECT B.MANV,B.HOTEN,B.MAPB,C.SONGAY
FROM NHANVIEN B,PHANCONG C
WHERE B.MANV = C.MANV AND C.SONGAY<(SELECT AVG(SONGAY)
FROM PHANCONG WHERE C.MADA=PHANCONG.MADA GROUP BY
MADA)
9. Hiển thị các dự án có số ngày trung bình của mỗi nhân viên thực hiện trong
dự án lớn hơn 12.
SELECT MANV,MADA,AVG(SONGAY)
FROM PHANCONG
GROUP BY MANV,MADA
HAVING AVG(SONGAY)>12
10. Hiển thị những nhân viên sinh trong tháng 12
SELECT *
FROM NHANVIEN
WHERE MONTH(NSINH) =12
- Xem thêm -