-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathThucHanh2.sql
More file actions
231 lines (195 loc) · 5.54 KB
/
ThucHanh2.sql
File metadata and controls
231 lines (195 loc) · 5.54 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
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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
create database BanHang;
go
create table HangSX
(
MaHangSX char(10) not null primary key,
TenHang nvarchar(30) not null,
DiaChi nvarchar(30) not null,
SoDT char(15) not null,
Email char(30) not null
);
create table SanPham
(
MaSP char(10) not null primary key,
MaHangSX char(10) not null,
TenSP nvarchar(30) not null,
SoLuong int not null,
MauSac nvarchar(10) not null,
GiaBan int not null,
DonViTinh char(10) not null,
MoTa nvarchar(30) not null,
foreign key(MaHangSX) references HangSX(MaHangSX)
);
create table NhanVien
(
MaNV char(10) not null primary key,
TenNV nvarchar(30) not null,
GioiTinh char(5) not null,
DiaChi nvarchar(30) not null,
SoDT char(15) not null,
Email char(30) not null,
TenPhong nvarchar(20) not null
);
create table PNhap
(
SoHDN char(10) not null primary key,
NgayNhap date not null,
MaNV char(10) not null
foreign key(MaNV) references NhanVien(MaNV),
);
create table Nhap
(
SoHDN char(10) not null,
MaSP char(10) not null,
SoLuongN int not null,
DonGiaN int not null,
primary key(SoHDN, MaSP),
foreign key(MaSP) references SanPham(MaSP),
foreign key(SoHDN) references PNhap(SoHDN)
);
create table PXuat
(
SoHDX char(10) not null primary key,
NgayXuat date not null,
MaNV char(10) not null,
foreign key(MaNV) references NhanVien(MaNV)
);
create table Xuat
(
SoHDX char(10) not null,
MaSP char(10) not null,
SoLuongX int not null,
primary key(SoHDX, MaSP),
foreign key(MaSP) references SanPham(MaSP),
foreign key(SoHDX) references PXuat(SoHDX)
);
/*a*/
create view CauA
as
Select HangSX.MaHangSX, TenHang, Count(*) As N'So luong SP'
From SanPham Inner join HangSX on SanPham.MaHangSX = HangSX.MaHangSX
Group by HangSX.MaHangSX, TenHang
/*b*/
create view CauB
as
Select SanPham.MaSP,TenSP, sum(SoLuongN*DonGiaN) As N'Tổng tiền nhập'
From Nhap Inner join SanPham on Nhap.MaSP = SanPham.MaSP
Inner join PNhap on PNhap.SoHDN=Nhap.SoHDN
Where Year(NgayNhap)=2020
Group by SanPham.MaSP,TenSP
/*c*/
create view CauC
as
Select SanPham.MaSP,TenSP,sum(SoLuongX) As N'Tổng xuất'
From Xuat Inner join SanPham on Xuat.MaSP = SanPham.MaSP
Inner join HangSX on HangSX.MaHangSX = SanPham.MaHangSX
Inner join PXuat on Xuat.SoHDX=PXuat.SoHDX
Where Year(NgayXuat)=2018 And TenHang = 'Samsung'
Group by SanPham.MaSP,TenSP
Having sum(SoLuongX) >=10000
/*d*/
create view CauD
as
select TenPhong, count(MaNV) as 'Sl NV Nam'
from NhanVien
where GioiTinh = 'Nam'
group by TenPhong
/*e*/
create view CauE
as
select HangSX.MaHangSX, TenHang, sum(SoLuongN) as 'SoLuongN'
from SanPham inner join Nhap on SanPham.MaSP = Nhap.MaSP
inner join HangSX on SanPham.MaHangSX = HangSX.MaHangSX
inner join PNhap on Nhap.SoHDN = PNhap.SoHDN
where year(NgayNhap) = '2018'
group by HangSX.MaHangSX, TenHang
/*f*/
create view CauF
as
select NhanVien.MaNV, TenNV, sum(SoLuongX) as 'SoLuongX 2018'
from NhanVien inner join PXuat on NhanVien.MaNV = PXuat.MaNV
inner join Xuat on PXuat.SoHDX = Xuat.SoHDX
where year(NgayXuat) = '2018'
group by NhanVien.MaNV, TenNV
/*g*/
create view CauG
as
select NhanVien.MaNV, TenNV, sum(SoLuongN * DonGiaN) as 'Tong Tien Nhap'
from NhanVien inner join PNhap on NhanVien.MaNV = PNhap.MaNV
inner join Nhap on PNhap.SoHDN = Nhap.SoHDN
where year(NgayNhap) = '2018' and month(NgayNhap) = '8'
group by NhanVien.MaNV, TenNV
having sum(SoLuongN * DonGiaN) > 100000
/*h*/
create view CauH
as
Select SanPham.MaSP,TenSP
From SanPham Inner join nhap on SanPham.MaSP = nhap.MaSP
Where SanPham.MaSP Not In (Select MaSP From Xuat)
/*Cau i*/
create view CauI
as
select TenSP, SanPham.MaSP
from SanPham inner join Nhap on SanPham.MaSP = Nhap.MaSP
inner join PNhap on Nhap.SoHDN = PNhap.SoHDN
inner join Xuat on SanPham.MaSP = Xuat.MaSP
inner join PXuat on Xuat.SoHDX = PXuat.SoHDX
where YEAR(NgayNhap) = '2020' and year(NgayXuat) = '2020'
and SanPham.MaSP in (select Nhap.MaSP from Nhap)
and SanPham.MaSP in (select Xuat.MaSP from Xuat);
/*Cau j*/
create view CauJ
as
select TenNV, NhanVien.MaNV
from NhanVien inner join PNhap on NhanVien.MaNV = PNhap.MaNV
inner join Nhap on Nhap.SoHDN = PNhap.SoHDN
inner join PXuat on NhanVien.MaNV = PXuat.MaNV
inner join Xuat on PXuat.SoHDX = Xuat.SoHDX
where NhanVien.MaNV in (select PNhap.MaNV from PNhap)
and NhanVien.MaNV in (select PXuat.MaNV from PXuat);
/* Cauk*/
create view Cauk
as
select TenNV, NhanVien.MaNV
from NhanVien inner join PNhap on NhanVien.MaNV = PNhap.MaNV
inner join Nhap on Nhap.SoHDN = PNhap.SoHDN
inner join PXuat on NhanVien.MaNV = PXuat.MaNV
inner join Xuat on PXuat.SoHDX = Xuat.SoHDX
where NhanVien.MaNV not in (select PNhap.MaNV from PNhap)
and NhanVien.MaNV not in (select PXuat.MaNV from PXuat);
/*Cau l*/
create view demo
as
select SanPham.MaSP, sum(soluongx) as TongSl
from SanPham inner join xuat on SanPham.MaSP = Xuat.MaSP
group by SanPham.masp
create view CauL
as
select TenSP
from SanPham inner join Xuat on SanPham.MaSP = Xuat.MaSP
inner join PXuat on Xuat.SoHDX = Xuat.SoHDX
group by TenSP
having sum(SoLuongX) = (select max(TongSl) from demo)
/*Cau m*/
create view m
as
select TenSP, TenHang
from SanPham inner join HangSX on SanPham.MaHangSX = HangSX.MaHangSX
where GiaBan = (select min(GiaBan) from SanPham);
/*Cau cuoi*/
create view caucuoi
as
select tensp
from SanPham inner join Xuat on SanPham.MaSP = Xuat.MaSP
inner join PXuat on PXuat.SoHDX = Xuat.SoHDX
where year(NgayXuat) = '2020'
group by TenSP
having count(TenSP) > 10
Create view caul
As
Select TenSP,SoLuongN
From SanPham inner join Nhap on SanPham.MaSP=Nhap.MaSP
Where SoLuongN=(select sum(SoLuongN) from Nhap)
Group by TenSP
Having SoLuongN=(select max(SoLuongN) from Nhap)
Select *from caul