Tài Liệu
Tài Liệu
MSSV:236167
LỚP:DH23TIN07
use [master]
go
create database QLNHANVIEN
USE [QLNHANVIEN]
GO
CREATE TABLE NHAN_VIEN
(
MANV CHAR(20) NOT NULL PRIMARY KEY,
HOTEN NCHAR(50) NOT NULL,
NU BIT,
NGAYSINH DATETIME NOT NULL,
LUONG NUMERIC(18, 3),
MAPB CHAR(20) NOT NULL,
MACV CHAR(20) NOT NULL,
)
GO
CREATE TABLE PHONG_BAN
(
MAPB CHAR(20) NOT NULL PRIMARY KEY,
TENPB NCHAR(50) NOT NULL,
TRUSO NCHAR(50) NOT NULL,
MANVPT CHAR(20) NOT NULL,
KINHPHI NUMERIC(18, 3),
DOANHTHU NUMERIC(18, 3),
)
GO
CREATE TABLE CHUC_VU
(
MACV CHAR(20) NOT NULL PRIMARY KEY,
TENCV NCHAR(30) NOT NULL,
LUONGTHAPNHAT NUMERIC(18, 3),
LUONGCAONHAT NUMERIC(18, 3),
)
GO
Alter table
NHAN_VIEN
add
Constraint PK_MACV FOREIGN KEY (MACV) REFERENCES CHUC_VU(MACV);
GO
Alter table
NHAN_VIEN
add
Constraint PK_MAPB FOREIGN KEY (MAPB) REFERENCES PHONG_BAN(MAPB);
GO
INSERT INTO CHUC_VU (MACV, TENCV, LUONGTHAPNHAT, LUONGCAONHAT)
VALUES
(1, N'Giam doc', 10000000, 20000000),
(2, N'Pho giam doc', 8000000, 15000000),
(3, N'Truong phong', 6000000, 12000000),
(4, N'Pho phong', 4000000, 10000000);
GO
INSERT INTO [dbo]. NHAN_VIEN (MANV, HOTEN, NU, NGAYSINH, LUONG, MAPB,
MACV) VALUES
('1', N'Nguyen A', 0, '1980-01-15', 3000000, '10', '1'),
('2', N'Tran Thi B', 1, '1985-02-20', 3500000, '20', '2'),
('3', N'Le Van T', 0, '1990-03-25', 4000000, '30', '1'),
('4', N'Le Van Tan', 1, '1995-04-30', 4500000, '40', '4'),
('5', N'Hoang Van E', 0, '1982-05-10', 5000000, '50', '3'),
('6', N'Nguyen Thi F', 1, '1987-06-15', 5500000, '10', '1'),
('7', N'Tran Van G', 0, '1992-07-20', 6000000, '20', '2'),
('8', N'Le Thi H', 1, '1997-08-25', 6500000, '40', '3'),
('9', N'Pham Van I', 0, '1984-09-30', 7000000, '40', '4'),
('10', N'Hoang Thi J', 1, '1989-10-05', 7500000, '50', '3'),
('11', N'Nguyen Van K', 0, '1994-11-10', 8000000, '10', '1'),
('12', N'Tran Thi L', 1, '1999-12-15', 8500000, '20', '2'),
('13', N'Le Van M', 0, '1981-01-20', 9000000, '30', '3'),
('14', N'Pham Thi N', 1, '1986-02-25', 9500000, '40', '4'),
('15', N'Hoang Van O', 0, '1991-03-30', 10000000, '50', '3');
GO
INSERT INTO [dbo]. PHONG_BAN (MAPB, TENPB, TRUSO, MANVPT, KINHPHI,
DOANHTHU) VALUES
(10, N'Phong A', N'Hanoi', 1, 10000000, 50000000),
(20, N'Phong B', N'HCM', 2, 20000000, 60000000),
(30, N'Phong C', N'Da Nang', 3, 30000000, 70000000),
(40, N'Phong D', N'Hue', 4, 40000000, 80000000),
(50, N'Phong E', N'Can Tho', 5, 50000000, 90000000);
-- CAU 1:
SELECT [MAPB], [TENPB], [TRUSO], [MANVPT], [KINHPHI], [DOANHTHU]
FROM [dbo].[PHONG_BAN]
-- CAU 2:
SELECT [MANV], [HOTEN], [NGAYSINH]
FROM [dbo].[NHAN_VIEN]
WHERE MONTH ([NGAYSINH])= 10
-- CAU 3a:
SELECT [MANV], [HOTEN], [LUONG] * 12 AS 'LUONG CA NAM'
FROM [dbo].[NHAN_VIEN]
-- CAU 3b:
SELECT [TENPB], MAX([KINHPHI]) AS 'KINH PHI CAO NHAT'
FROM [dbo].[PHONG_BAN]
GROUP BY [TENPB]
-- CAU 4:
SELECT [MANV], [HOTEN], [MAPB]
FROM [dbo].[NHAN_VIEN]
WHERE [MAPB]=40
-- CAU 5.
SELECT [MANV], [HOTEN], [MAPB]
FROM [dbo].[NHAN_VIEN]
WHERE [MAPB] IN (10, 30, 50)
-- CAU 6:
SELECT [MANV], [HOTEN], [LUONG]
FROM [dbo].[NHAN_VIEN]
WHERE [LUONG] BETWEEN 2500000 AND 4000000
-- CAU 7:
GO
SELECT MAX(YEAR(GETDATE())-YEAR([NGAYSINH])) AS 'TUOI LON NHAT'
FROM[dbo]. [NHAN_VIEN] N,[dbo]. [PHONG_BAN] P
WHERE N.[MAPB]= P.[MAPB] AND N. MAPB= '10'
-- CAU 8:
SELECT [MANV], [HOTEN], [LUONG], [MAPB]
FROM [dbo].[NHAN_VIEN]
WHERE [MAPB] IN (10, 30, 50)
ORDER BY [MAPB] ASC, [LUONG] DESC
-- CAU 9:
SELECT [MANV], [HOTEN], [MAPB], [LUONG], [MACV]
FROM [dbo].[NHAN_VIEN]
WHERE [MAPB] IN (10, 30, 50) AND [MACV]=1
ORDER BY [MAPB] ASC, [LUONG] DESC
-- CAU 10:
SELECT [MAPB]
FROM [dbo].[NHAN_VIEN]
GROUP BY [MAPB]
HAVING MAX([LUONG])>= 4000000
-- CAU 11:
SELECT P.[MAPB], P.[TENPB], N.[MANV], N.[HOTEN]
FROM [dbo].[PHONG_BAN] P JOIN [dbo].[NHAN_VIEN] N
ON N.[MANV]=P.[MANVPT]
-- CAU 12:
SELECT [MANV], [HOTEN], [MAPB], [MACV]
FROM [dbo].[NHAN_VIEN]
WHERE [MAPB] = (SELECT [MAPB] FROM [dbo].[NHAN_VIEN] WHERE [HOTEN] = 'Le
Van Tan')
-- CAU 13:
SELECT N.[MANV], N.[HOTEN], N.[LUONG], N.[MAPB], N.[MACV]
FROM [dbo].[NHAN_VIEN] N JOIN [dbo].[PHONG_BAN] P ON P.MANVPT = N.MANV
WHERE N.MAPB = (SELECT [MAPB] FROM [dbo].[NHAN_VIEN] WHERE [HOTEN] = 'Le
Van Tan')
--CAU 14.
SELECT * FROM [dbo].[NHAN_VIEN]
-- CAU 17:
SELECT [MAPB], COUNT([MANV]) AS 'SO LUONG NHAN VIEN'
FROM [dbo].[NHAN_VIEN]
GROUP BY [MAPB]