-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDE1.sql
More file actions
86 lines (70 loc) · 2.22 KB
/
DE1.sql
File metadata and controls
86 lines (70 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
CREATE DATABASE QLBENHVIEN1
USE QLBENHVIEN1
CREATE TABLE BENHVIEN
(
MABV CHAR(10) PRIMARY KEY NOT NULL,
TENBV NVARCHAR(20) NOT NULL
)
CREATE TABLE KHOAKHAM
(
MAKHOA CHAR(10) PRIMARY KEY NOT NULL,
TENKHOA NVARCHAR(20) NOT NULL,
SOBENHNHAN INT NOT NULL,
MABV CHAR(10) NOT NULL,
CONSTRAINT FK1 FOREIGN KEY(MABV) REFERENCES BENHVIEN(MABV)
)
CREATE TABLE BENHNHAN
(
MABN CHAR(10) NOT NULL PRIMARY KEY,
HOTEN NVARCHAR(20) NOT NULL,
NGAYSINH DATETIME NOT NULL,
GIOITINH BIT NOT NULL,
SONGAYNV INT NOT NULL,
MAKHOA CHAR(10) NOT NULL,
CONSTRAINT FK2 FOREIGN KEY(MAKHOA) REFERENCES KHOAKHAM(MAKHOA)
)
INSERT INTO BENHVIEN VALUES
('BM', N'BẠCH MAI'),
('VD', N'VIỆT ĐỨC')
INSERT INTO KHOAKHAM VALUES
('HS', N'HỒI SỨC', 200, 'BM'),
('TM', N'TIM MẠCH', 140, 'VD')
INSERT INTO BENHNHAN VALUES
('BN7', N'NGUYỄN THỊ F', '2/22/2000', '1', 22, 'TM'),
('BN1', N'NGUYỄN VĂN A', '3/12/2001', '1', 21, 'HS'),
('BN2', N'NGUYỄN THỊ B', '3/11/1999', '0', 10, 'HS'),
('BN3', N'NGUYỄN VĂN C', '3/1/2010', '1', 29, 'TM'),
('BN4', N'NGUYỄN VĂN D', '3/10/2009', '1', 10, 'HS'),
('BN5', N'NGUYỄN THỊ E', '3/12/2006', '0', 21, 'TM'),
('BN6', N'NGUYỄN TẤN T', '2/22/2002', '0', 10, 'HS')
---------------------------------------------------
-- câu 2
SELECT MABN, HOTEN, (YEAR(GETDATE()) - YEAR(NGAYSINH)) AS 'TUỔI'
FROM BENHNHAN
WHERE YEAR(NGAYSINH) = (SELECT MIN(YEAR(NGAYSINH)) FROM BENHNHAN)
----------------------------------------------------
--CÂU 4
CREATE PROC SP_XOA_KHOA(@MAKHOA CHAR(10))
AS
BEGIN
IF(NOT EXISTS(SELECT * FROM KHOAKHAM WHERE MAKHOA = @MAKHOA))
PRINT(@MAKHOA + 'CHUA TON TAI')
ELSE
DELETE FROM KHOAKHAM WHERE MAKHOA = @MAKHOA
END
SELECT * FROM KHOAKHAM
EXEC SP_XOA_KHOA 'KT'
--------------------------------------------------------
-- CÂU 3
CREATE FUNCTION CAU3(@MABN CHAR(10))
RETURNS @DANHSACH TABLE(MABN CHAR(10), HOTEN NVARCHAR(20), GIOITINH NVARCHAR(10), TENKHOA NVARCHAR(20), TENBV NVARCHAR(20))
AS
BEGIN
INSERT INTO @DANHSACH
SELECT MABN, HOTEN, (CASE GIOITINH WHEN 0 THEN N'NAM' WHEN 1 THEN N'NỮ' END), TENKHOA, TENBV
FROM BENHVIEN INNER JOIN KHOAKHAM ON BENHVIEN.MABV = KHOAKHAM.MABV
INNER JOIN BENHNHAN ON KHOAKHAM.MAKHOA = BENHNHAN.MAKHOA
WHERE MABN = @MABN
RETURN
END
SELECT * FROM CAU3('BN1')