-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDEKT.sql
More file actions
82 lines (61 loc) · 1.43 KB
/
DEKT.sql
File metadata and controls
82 lines (61 loc) · 1.43 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
CREATE DATABASE QLTV
USE QLTV
CREATE TABLE SACH
(
MASACH CHAR(10) PRIMARY KEY NOT NULL,
TENSACH NVARCHAR(30) NOT NULL,
SOTRANG INT NOT NULL,
SLTON INT NOT NULL
)
CREATE TABLE PM
(
MAPM CHAR(10) PRIMARY KEY NOT NULL,
NGAYM DATETIME NOT NULL,
HOTENDG NVARCHAR(30) NOT NULL
)
CREATE TABLE SACHMUON
(
MAPM CHAR(10) NOT NULL,
MASACH CHAR(10) NOT NULL,
SONGAYMUON INT NOT NULL,
PRIMARY KEY(MAPM, MASACH),
CONSTRAINT FK1 FOREIGN KEY(MAPM) REFERENCES PM(MAPM),
CONSTRAINT FK2 FOREIGN KEY(MASACH) REFERENCES SACH(MASACH)
)
INSERT INTO SACH VALUES
('S1', N'SÁCH VĂN', 10, 20),
('S2', N'SÁCH TOÁN', 8, 25)
INSERT INTO PM VALUES
('P1', '1/22/2021', N'ĐỨC'),
('P2', '1/20/2021', N'ĐỖ')
INSERT INTO SACHMUON VALUES
('P1', 'S1', '20'),
('P2', 'S2', '24'),
('P1', 'S2', '17'),
('P2', 'S1', '22')
SELECT * FROM SACH
SELECT * FROM PM
SELECT * FROM SACHMUON
CREATE VIEW CAU2
AS
SELECT SACHMUON.MASACH, HOTENDG, NGAYM, (NGAYM + SONGAYMUON) AS 'NGAY TRA'
FROM SACH INNER JOIN SACHMUON ON SACH.MASACH = SACHMUON.MASACH
INNER JOIN PM ON PM.MAPM = SACHMUON.MAPM
SELECT * FROM CAU2
ALTER FUNCTION CAU3(@MASACH CHAR(10))
RETURNS INT
AS
BEGIN
DECLARE @TONGSO INT
SELECT @TONGSO = COUNT(SACHMUON.MASACH)
FROM PM INNER JOIN SACHMUON
ON PM.MAPM = SACHMUON.MAPM
WHERE MASACH = @MASACH AND
DATEDIFF(DAY, NGAYM, GETDATE()) > SONGAYMUON
GROUP BY MASACH
RETURN @TONGSO
END
SELECT DBO.CAU3('S2')
SELECT DATEDIFF(DAY, NGAYM, GETDATE())
FROM PM
SELECT * FROM PM