-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAggregation-Functions_Nested-Queries-Division_Operation.sql
221 lines (203 loc) · 4.64 KB
/
Aggregation-Functions_Nested-Queries-Division_Operation.sql
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
USE QuanLyBanHang;
-------- PHAN3--------
-- Câu15--
SELECT MASP,TENSP
FROM SANPHAM
WHERE MASP NOT IN(
SELECT MASP
FROM CTHD
);
-- Câu16--
SELECT MASP,TENSP
FROM SANPHAM
WHERE MASP NOT IN(
SELECT MASP
FROM CTHD INNER JOIN HOADON ON CTHD.SOHD = HOADON.SOHD
WHERE YEAR(NGHD) = 2006
);
-- CAU17--
SELECT MASP, TENSP
FROM SANPHAM
WHERE NUOCSX = 'Trung Quoc' AND MASP NOT IN(
SELECT CTHD.MASP FROM CTHD INNER JOIN HOADON ON CTHD.SOHD = HOADON.SOHD
WHERE YEAR(NGHD) = 2006 AND NUOCSX ='Trung Quoc'
);
-- C2
SELECT MASP, TENSP
FROM SANPHAM AS A
WHERE NUOCSX = 'Trung Quoc' AND NOT EXISTS(
SELECT * FROM CTHD INNER JOIN HOADON ON CTHD.SOHD = HOADON.SOHD INNER JOIN SANPHAM ON SANPHAM.MASP = CTHD.MASP
WHERE YEAR(NGHD) = 2006 AND NUOCSX ='Trung Quoc' AND CTHD.MASP = A.MASP
-- Truy vấn lồng tương quan A
-- Giá trị not exists là TRUE/False: nếu trả về giá trị thì là False, nếu không thì True.
);
-- CAU18
SELECT SOHD FROM HOADON AS A
WHERE NOT EXISTS(
SELECT MASP FROM SANPHAM AS B
WHERE NUOCSX = 'Singapore' AND NOT EXISTS(
SELECT * FROM CTHD
WHERE A.SOHD = CTHD.SOHD AND B.MASP = CTHD.MASP
)
);
-- CAU20
SELECT COUNT(SOHD) AS SOHOADON
FROM HOADON
WHERE MAKH NOT IN (SELECT MAKH FROM KHACHHANG WHERE HOADON.MAKH=KHACHHANG.MAKH AND HOADON.NGHD >=KHACHHANG.NGDK);
-- CAU21
SELECT COUNT( DISTINCT MASP) AS SOSANPHAM
FROM CTHD,HOADON
WHERE YEAR(NGHD)=2006;
-- CAU 22
SELECT MAX(TRIGIA) AS TRIGIACAONHAT, MIN(TRIGIA) AS TRIGIATHAPNHAT
FROM HOADON;
-- CAU23
SELECT AVG(TRIGIA) AS TRUNGBINHTRIGIA
FROM HOADON
WHERE YEAR(NGHD)=2006;
-- CAU 24
SELECT SUM(TRIGIA) AS DOANHTHU
FROM HOADON
WHERE YEAR(NGHD)=2006
-- CAU25
SELECT SOHD
FROM HOADON
WHERE TRIGIA = (
SELECT MAX(TRIGIA)
FROM HOADON
);
-- CAU26---
SELECT HOTEN
FROM KHACHHANG INNER JOIN HOADON ON KHACHHANG.MAKH = HOADON.MAKH
WHERE YEAR(NGHD) = 2006 AND TRIGIA = (
SELECT MAX(TRIGIA)
FROM HOADON
);
-- CAU27
SELECT MAKH, HOTEN
FROM KHACHHANG
ORDER BY DOANHSO DESC
LIMIT 3;
-- CAU28
SELECT MASP,TENSP
FROM SANPHAM INNER JOIN (
SELECT DISTINCT GIA
FROM SANPHAM
ORDER BY GIA DESC
LIMIT 3
) AS SP3 ON SANPHAM.GIA= SP3.GIA;
-- CAU29
SELECT MASP,TENSP
FROM SANPHAM INNER JOIN (
SELECT DISTINCT GIA
FROM SANPHAM
ORDER BY GIA DESC
LIMIT 3
) AS SP3 ON SANPHAM.GIA= SP3.GIA
WHERE NUOCSX = 'Thai Lan'
-- CAU30
SELECT MASP,TENSP
FROM SANPHAM INNER JOIN (
SELECT DISTINCT GIA
FROM SANPHAM
WHERE NUOCSX = 'Trung Quoc'
ORDER BY GIA DESC
LIMIT 3
) AS SP3 ON SANPHAM.GIA= SP3.GIA
-- ---QUANLYGIAOVU-----
USE QLGV
-- PHAN 3--
-- CAU7--
-- III.7 Tìm những môn học (mã môn học, tên môn học) mà giáo viên chủ nhiệm lớp “K11” dạy trong học kỳ 1 năm 2006
SELECT MONHOC.MAMH, TENMH
FROM MONHOC INNER JOIN (SELECT * FROM GIANGDAY
WHERE YEAR(TUNGAY)= 2006 AND YEAR(DENNGAY) = 2006 AND HOCKY = 1 AND MAGV = (SELECT MAGVCN
FROM LOP
WHERE MALOP = 'K11')) AS GD1 ON MONHOC.MAMH = GD1.MAMH;
-- CAU8
SELECT HOCVIEN.HO,HOCVIEN.TEN
FROM HOCVIEN INNER JOIN (SELECT TRGLOP
FROM LOP
WHERE MALOP =
(SELECT MALOP FROM GIANGDAY
WHERE MAGV = (SELECT MAGV
FROM GIAOVIEN
WHERE HOTEN = 'Nguyen To Lan')AND MAMH = (SELECT MAMH
FROM MONHOC
WHERE TENMH ='Co so du lieu'))
) AS SV1 ON HOCVIEN.MAHV = SV1.TRGLOP
-- CAU 9
SELECT MAMH, TENMH
FROM MONHOC
WHERE MAMH IN (SELECT MAMH_TRUOC
FROM DIEUKIEN
WHERE MAMH='CSDL'
);
-- CAU10
SELECT MAMH, TENMH
FROM MONHOC
WHERE MAMH IN (SELECT MAMH
FROM DIEUKIEN
WHERE MAMH_TRUOC=(SELECT MAMH
FROM MONHOC
WHERE TENMH='Cau truc roi rac'
));
-- CAU11
SELECT HOTEN
FROM GIANGDAY, GIAOVIEN
WHERE GIANGDAY.MAGV=GIAOVIEN.MAGV
AND MALOP='K11' AND MAMH='CTRR' AND HOCKY=1 AND NAM=2006
AND GIANGDAY.MAGV IN(SELECT MAGV FROM GIANGDAY WHERE MALOP='K12' AND MAMH='CTRR' AND HOCKY=1 AND NAM=2006)
-- CAU12
SELECT KETQUATHI.MAHV,HO,TEN
FROM HOCVIEN, KETQUATHI
WHERE HOCVIEN.MAHV=KETQUATHI.MAHV
AND MAMH='CSDL' AND LANTHI=1 AND KQUA='Khong Dat'
AND KETQUATHI.MAHV NOT IN (SELECT MAHV FROM KETQUATHI WHERE MAMH='CSDL' AND LANTHI>1)
-- CAU13
SELECT GIAOVIEN.MAGV,HOTEN
FROM GIAOVIEN
WHERE MAGV NOT IN(SELECT MAGV FROM GIANGDAY)
-- CAU14
SELECT MAGV, HOTEN
FROM GIAOVIEN
WHERE NOT EXISTS
(
SELECT *
FROM MONHOC
WHERE MONHOC.MAKHOA = GIAOVIEN.MAKHOA
AND NOT EXISTS
(
SELECT *
FROM GIANGDAY
WHERE GIANGDAY.MAMH = MONHOC.MAMH
AND GIANGDAY.MAGV = GIAOVIEN.MAGV
)
)
-- CAU15
SELECT DISTINCT
(HO+' '+TEN) HoTen
FROM
HOCVIEN, KETQUATHI
WHERE
HOCVIEN.MAHV = KETQUATHI.MAHV
AND MALOP = 'K11'
AND ((LANTHI = 2 AND DIEM = 5)
OR HOCVIEN.MAHV IN
(
SELECT DISTINCT MAHV
FROM KETQUATHI
WHERE KQUA = 'Khong Dat'
GROUP BY MAHV, MAMH
HAVING COUNT(*) > 3
))
-- CAU16
SELECT HOTEN
FROM
GIAOVIEN, GIANGDAY
WHERE
GIAOVIEN.MAGV = GIANGDAY.MAGV
AND MAMH='CTRR'
GROUP BY
GIAOVIEN.MAGV, HOTEN, NAM
HAVING COUNT(*)>=2