You are on page 1of 28

Mn thi : Lp trnh SQL-SERVER

Thi gian : 90 pht


(Sinh vin c s dng ti liu)
1
Cu 1: (3 im) C s d liu qun l sinh vin c cha 3 table. Vit lnh to cc table vi
cc rng buc kha chnh, kha ngoi c nu trong tn t. Kiu d liu ca cc Fields l t
chn theo ng ngha.
SinhVien(MSSV, Lop, Ho, Ten, Ngaysinh, Nu)
Tn t: Mi sinh vin c mt m s (MSSV) l s nguyn phn bit, thuc mt lp
(Lop), c h (HO) v tn (Ten) sinh vin, ngy sinh (Ngaysinh), thuc phi n
hay nam (Nu).
MonHoc(MSMon, TenMon)
Tn t: Mi mn hc c mt m s (MSMon) l mt s nguyn phn bit, c tn mn
hc (TenMon).
DiemThi(MSSV, MSMon, LanThi, Diem)
Tn t: Mi sinh vin (MSSV) c th hc nhiu mn (MSMon). Mi mn hc c th
thi nhiu ln (LanThi), mi ln thi c nh s th t t 1 tr i v ghi nhn
im thi (Diem) ca cc ln thi .
Cu 2: (1 im) Khai bo b sung cc rng buc sau:
a) Ln thi (LanThi) trong table DiemThi c gi tr mc nh l 1
b) im thi (Diem) trong table DiemThi c chm theo thang im 10
Cu 3: (2 im) To View:
a) To view vwLanThiCuoi dng lit k danh sch ln thi cui cng ca cc sinh vin
gm: M s sinh vin, m s mn hc, ln thi cui cng ca mn hc (v d sinh
vin A thi mn hc C ba ln th ln thi cui cng l 3).
b) To view vwDiemThiCuoi dng lit k danh sch sinh vin gm: M s sinh vin,
m s mn hc, ln thi cui cng ca mn hc (v d sinh vin A thi mn hc M ba
ln th ln thi cui cng l 3) v im ca ln thi cui cng .
Cu 4: (2 im) To trigger Insert cho table DiemThi dng in t ng s th t ln thi khi
thm im thi mt mn hc ca mt sinh vin. V d sinh vin A thi mn hc M hai ln th
ln thi mi thm vo phi l 3.
Cu 5: (2 im) Vit th tc hoc hm lit k kt qu thi cc mn ca mt sinh vin khi bit
m s ca sinh vin (MSSV) gm cc thng tin: m s mn hc, ln thi, im thi. Trong ,
m s sinh vin l gi tr input

https://www.facebook.com/minhduc2091

Thi SQL C Li Gii

Mn thi : Lp trnh SQL-SERVER


Thi gian : 90 pht
(Sinh vin c s dng ti liu)
2
Cu 1: (3 im) C s d liu qun l cc trn u bng ti mt sn vn ng c cha 3
table. Vit lnh to cc table vi cc rng buc kha chnh, kha ngoi c nu trong tn t.
Kiu d liu ca cc Fields l t chn theo ng ngha.
Doi(MSDoi, TenDoi, Phai)
Tn t: Mi i c 1 m s (MSDoi) l mt s nguyn phn bit; c tn (TenDoi) v
thuc phi nam hay n (Phai).
TranDau(MSTD, NgayTD, GioBD, GioKT)
Tn t: Mi trn u c 1 m s (MSTD) l mt s nguyn phn bit vi nhng trn
u khc, din ra vo 1 ngy (NgayTD), bt u mt gi (GioBD) v d kin
kt thc ti mt gi (GioKT).
DoiThiDau(MSTD, MSDoi)
Tn t: Lu tr danh sch cc i (MSDoi) tham gia thi u trong cc trn u
(MSTD). Bit rng, mi trn u l mt cuc gp g gia 2 i v c 2 i phi
thuc cng mt phi.
Cu 2: (1 im) Vit lnh khai bo b sung cc rng buc sau:
a) Gi bt u thi u (GioTD) phi nh hn gi kt thc (GioKT) trn u.
b) Hai trn u trong table TranDau din ra trong cng mt ngy (NgayTD) th
khng bt u cng mt gi thi u (GioTD).
Cu 3: (2 im) To View:
a) To view vwDoiChuaThiDau dng lit k danh sch cc i cha c m s i
trong table DoiThiDau gm: M s i, tn i, phi.
b) To view vwSoTranDau dng thng k s trn u din ra trong tng ngy thi
u vi cc thng tin: Ngy thi u v s trn u trong ngy.
Cu 4: (2 im) To insert trigger cho table DoiThiDau dng kim tra rng buc mi trn
u ch l mt cuc gp g gia 2 i v c 2 i phi thuc cng mt phi.
Cu 5: (2 im) To th tc hoc hm hin th thng tin 2 i tham gia trong mt trn u
khi bit m s trn u. Nu m trn u khng c trong table DoiThiDau th hin th thng
bo li. Trong , m s trn u (MSTD) l gi tr input

https://www.facebook.com/minhduc2091

Mn thi : Lp trnh SQL-SERVER


Thi gian : 90 pht
(Sinh vin c s dng ti liu)
3
Cu 1: (3 im) C s d liu qun l ha n bn hng c cha 3 table. Vit lnh to cc
table vi cc rng buc kha chnh, kha ngoi c nu trong tn t. Kiu d liu ca cc
Fields l t chn theo ng ngha.
1- MatHang(MSMH, TenMH, DonGia, SoTon)
Tn t: Mi mt hng c mt m s (MSMH) l mt s nguyn phn bit, c tn mt
hng (TenMH), n gi (DonGia) bn mi nht ca mt hng v s lng
hng tn kho (SoTon).
2- HoaDon(MSHD, NgayLap)
Tn t: Mi ha n c mt m s phn bit (MSHD), ngy lp ha n (NgayLap)
3- CTHD(MSHD, MSMH, SoLuong, DonGiaHD)
Tn t: Mi ha n (MSHD) ghi mt hoc nhiu mt hng (MSMH) cng vi s
lng (SoLuong) v n gi bn ti thi im ghi ha n (DonGiaHD).
Cu 2: (1 im) Khai bo b sung cc rng buc sau:
a) S tn (SoTon) trong table MatHang c gi tr mc nh (Default) bng 0.
b) Tn mt hng trong table MatHang c gi tr phn bit gia cc mt hng.
Cu 3: (2 im) To View:
a) To view vwTienHD dng hin th tin bn trn tng ha n gm cc thng
tin: m s ha n, ngy lp, tin ha n bng tng tin bn tng mt hng ghi
trn mi ha n.
b) To view vwHangKhongBanDuoc dng lit k danh sch cc mt hng khng
bn c trong thng hin hnh.
Cu 4: (2 im) Xy dng Insert trigger cho CTHD thc hin yu cu: khi thm mt chi
tit ha n phi cp nht li s lng tn (SoTon) ca mt hng tng ng.
Cu 5: (2 im) Vit th tc hoc hm nhn 2 gi tr input kiu s nguyn l thng v nm.
Hy lit k doanh thu ca tng mt hng gm cc thng tin: m s mt hng, doanh thu mt
hng trong :
a) Mt nm nu thng l Null v nm khc Null
b) Mt thng nu thng v nm khc Null

https://www.facebook.com/minhduc2091

Mn thi : Lp trnh SQL-SERVER


Thi gian : 90 pht
(Sinh vin c s dng ti liu)
4
Cu 1: (3 im) C s d liu qun l vic mn tr sch c cha 3 table. Vit lnh to cc
table vi cc rng buc kha chnh, kha ngoi c nu trong tn t. Kiu d liu ca cc
Fields l t chn theo ng ngha.
1- Sach(MaSach, TenSach, SoLuong, SoDaMuon)
Tn t: Mi ta sch c mt m s (MaSach) l mt s nguyn phn bit, c tn sch
(TenSach), s lng (SoLuong), v s sch hin cho mn (SoDaMuon).
2- DocGia(MaDG, TenDG)
Tn t: Mi c gi c mt m s c gi (MaDG) l mt s nguyn phn bit, c tn
c gi (TenDG).
3- PhieuMuon(MaDG, NgayMuon, MaSach, NgayTra)
Tn t: Mi ngy mi c gi ch c mn mt quyn sch. Khi c gi mn sch
cn ghi nhn m c gi (MaDG), ngy mn (NgayMuon), m sch
(MaSach), ngy tr sch (NgayTra). Ngy tr sch l Null khi cha tr sch.
Cu 2: (1 im) Khai bo b sung cc rng buc sau:
a) S lng sch (SoLuong) trong table Sach khng nh hn s sch mn
(SoDaMuon)
b) Ngy mn sch (NgayMuon) trong table PhieuMuon c gi tr mc nh l ngy
hin hnh
Cu 3: (2 im) To View:
a) To view vwHetSach dng lit k cc sch c s lng sch (SoLuong) bng vi
s lng sch cho mn (SoDaMuon) gm cc thng tin: M sch, tn sch.
b) To view vwChuaTraSach dng hin th danh sch cc c gi cha tr sch (c
ngy tr l rng) gm cc thng tin: m c gi, tn c gi, ngy mn, tn sch
mn.
Cu 4: (2 im) To update trigger trn table PhieuMuon thc hin yu cu sau: Khi sa
ngy tr ca mt phiu mn t gi tr Null sang mt gi tr khc Null th phi gim s lng
sch mn ca ta sch tng ng trn table Sach, ngc li nu sa ngy tr t mt gi
tr khc Null sang gi tr Null th phi tng s lng sch mn ca ta sch tng ng
trn table Sach.
Cu 5: (2 im) Tao th tc hoc hm tr v s sch cn c th cho mn (SoLuong
SoDaMuon) ca mt m sch no . Trong , m sch l gi tr input. Hin th thng bo
li nu m sch khng tn ti trong table Sach.

https://www.facebook.com/minhduc2091

Svlhu08ct111@yahoo.com.vn

Mn thi : Lp trnh SQL-SERVER


Thi gian : 90 pht
(Sinh vin c s dng ti liu)
5
Cu 1: (3 im) C s d liu qun l lng hnh chnh s nghip c cha 3 table. Vit
lnh to cc table vi cc rng buc kha chnh, kha ngoi c nu trong tn t. Kiu d
liu ca cc Fields l t chn theo ng ngha.
1- NgachLuong(MSNgach, MoTa)
Tn t: H thng lng hnh chnh gm nhiu ngch, mi ngch lng c mt m s
(MSNgach) l mt s nguyn phn bit, mc m t (MoTa) dng ch nh nhn
vin thc hin cng vic no, bng cp no th thuc ngch lng ny.
2- DMNgachBac(MSNgach, Bac, HSLuong)
Tn t: Mi ngch lng (MSNgach) c nhiu bc lng (Bac). Mi bc lng l mt
s nguyn c gi tr t 1 tr i phn bit trong cng mt ngch lng. Mi bc
trong mt ngch lng c mt h s lng (HSLuong).
3- NhanVien(MSNV, Ho, Ten, MSNgach, Bac, NgayNLCC)
Tn t: Mi nhn vin c mt m s (MSNV) l mt s nguyn phn bit, c h (Ho),
tn (Ten), thuc ngch lng (MSNgach), bc lng (Bac) v ngy nng lng
cui cng (NgayNLCC).
Cu 2: (1 im) Khai bo b sung cc rng buc sau:
a) Trong table DMNgachBac, H s lng (HSLuong) phi phn bit trong cng mt
ngch lng (MSNgach).
b) Bc lng (Bac) trong table NhanVien c gi tr mc nh (Default) bng 1.
Cu 3: (2 im) To View:
a) To view vwHSLuong dng lit k h s lng ca mi nhn vin gm cc thng
tin: m s nhn vin, m s ngch, bc, h s lng.
b) To view vwNangLuong dng lit k nhn vin c s thng tnh t ngy nng
lng cui cng (NgayNLCC) n ngy hin hnh c gi tr khng nh hn 24
thng.
Cu 4: (2 im) To update trigger cho table NhanVien kim tra rng buc: Khi nng bc
lng (Bac) ca mt nhn vin th bc lng mi khng ln hn bc lng cao nht trong
ngch lng ca nhn vin (v d, ngch lng m s 15113 c s th t bc lng t 1 n
10 th bc lng mi ca nhn vin c m ngch 15113 khng t ln hn 10).
Cu 5: (2 im) Vit th tc hay hm tr v danh sch nhn vin c nng lng trong
mt nm (ngha l c ngy nng lng cui cng thuc nm tm kim). Trong , nm l mt
gi tr Input kiu s nguyn. Nu nm l Null th tr v danh sch nhn vin c nng
lng trong nm hin hnh.

https://www.facebook.com/minhduc2091

Mn thi : Lp trnh SQL-SERVER


Thi gian : 90 pht
(Sinh vin c s dng ti liu)
6
Cu 1: (3 im) C s d liu a l Vit Nam c cha 3 table. Vit lnh to cc table vi
cc rng buc kha chnh, kha ngoi c nu trong tn t. Kiu d liu ca cc Fields l
t chn theo ng ngha.
1- Tinh(MSTinh, TenTinh, DienTich, DanSo, TinhBG)
Tn t: Mi tnh c mt m tnh (MSTinh) l mt s nguyn phn bit, c tn tnh
(TenTinh), din tch (DienTich), dn s (DanSo) v l tnh bin gii hay
khng l tnh bin gii (TinhBG).
2- BienGioi(MSTinh, TenNuoc)
Tn t : Lu tr danh sch cc tnh (MSTinh) bin gii gip ranh vi mt nc khc
(TenNuoc)
3- LangGieng(MsTinh, MSTinhLG)
Tn t : Mi tnh (MSTinh) gip ranh vi 1 hay nhiu tnh lng ging (MSTinhLG)
Cu 2: (1 im) Khai bo b sung cc rng buc sau:
a) Trong table LangGieng, m tnh phi khc m tnh lng ging.
b) Tn tnh trong table Tinh c gi tr phn bit gia cc tnh.
Cu 3: (2 im) To View:
a) To view vwTinhLon dng lit k danh sch cc tnh c din tch ln hn din
tch cc tnh lng ging ca tnh .
b) To view vwSoNuocGiapRanh dng thng k s nc gip ranh ca cc tnh bin
gii vi cc thng tin: m tnh, tn tnh, s nc gip ranh vi tnh .
Cu 4: (2 im) To Insert trigger cho table BienGioi thc hin yu cu sau: Khi thm
mu tin trong table BienGioi th cp nht gi tr 1 cho thuc tnh TinhBG trong table Tinh
ca tnh c m s tnh (MSTinh) c thm trong table BienGioi.
Cu 5: (2 im) Vit th tc hoc hm dng lit k thng tin cc tnh lng ging ca mt
tnh khi bit m tnh. Trong , m tnh l gi tr input. Thng tin cc tnh lng ging cn
hin th gm: s th t, m tnh, tn tnh lng ging. Nu m tnh khng tn ti th hin
thng bo li.

https://www.facebook.com/minhduc2091

7
--Cu 1: (3 im) C s d liu qun l thi c cha 3 table. Vit lnh to cc table vi cc
rng buc kha chnh, kha ngoi c nu trong tn t. Kiu d liu ca cc Fields l t
chn theo ng ngha.
-- ThiSinh(MSTS, Ho, Ten, Ngaysinh, SBD, PhongThi)
--Tn t: Mi th sinh c mt m s (MSTS) l s nguyn phn bit, c h (HO) v tn
(Ten) sinh vin, ngy sinh (Ngaysinh), s bo danh (SBD), thuc mt phng thi (PhongThi).
-- MonThi(MSMon, TenMon)
--Tn t: Mi mn thi c mt m s (MSMon) l mt s nguyn phn bit, c tn mn thi
(TenMon).
--DiemMonThi(MSTS, MSMon, DiemThi)
--Tn t: mi mn thi (MSMon) th sinh (MSTS) c mt im thi (DiemThi).
--Cu 2: (1 im) Khai bo b sung cc rng buc sau:
--a) Mi th sinh trong table ThiSinh c mt s bo danh (SBD) phn bit.
--b) im thi (DiemThi) trong table DiemMonThi c gi tr t 0 n 10.
--Cu 3: (2 im) To View:
--a) To view vwBoThi dung lit k danh sch th sinh b thi. (khng c trong table
DiemMonThi).
--b) To view vwKetQuaThi dng lit k tng im thi cc mn ca cc th sinh gm : S
bo danh, h, tn. ngy sinh, phng thi, tng im thi. Sp th t u tin theo phng thi, sau
l s bo danh.
--Cu 4: (2 im) To update trigger cho table ThiSinh kim tra rng buc : Khi chuyn
mt th sinh sang phng thi khc (sa PhongThi ca th sinh) th s th sinh ca phng thi
chuyn n khng c qu 25 th sinh.
--Cu 5: (2 im) Vit th tc hoc hm s dng in s bo danh t ng (SBD) t 1 tr
i theo th t tn v h.

https://www.facebook.com/minhduc2091

GII 1
use master
go
if exists(select * from sys.databases where name='De1')
drop database De1
go
create database De1
go
use De1
go
---------------------Cu 1 : To TABLE
create table SinhVien
(
MSSV int identity(1,1) primary key,
Lop varchar(10),
Ho varchar(10),
Ten varchar(30),
NgaySinh datetime,
Nu bit
)
-------------------create table MonHoc
(
MSMon int identity(1,1) primary key,
TenMon varchar(30)
)
-------------------create table DiemThi
(
MSSV int,
MSMon int,
LanThi int,
Diem int,
primary key(MSSV,MSMon,LanThi),
foreign key(MSSV) references SinhVien(MSSV),
foreign key(MSMon) references MonHoc(MSMon),
)
--Cu 2 : B sung rng buc
go
Alter table DiemThi ADD
default 1 for LanThi,
check(Diem between 0 and 10)
-------------------insert into SinhVien values ('07ct112','Nguyen','Hoang Long','11/10/1989','True')
insert into SinhVien values ('07ct112','Le','Ngoc Nam','11/10/1989','True')
insert into SinhVien values ('07ct112','Le','Thanh Phuc','12/25/1989','True')
-------------------insert into MonHoc values ('SQL 2005')
insert into MonHoc values ('TTHCM')
-------------------https://www.facebook.com/minhduc2091

insert into DiemThi values(1,1,1,10)


-------------------insert into DiemThi values(2,1,1,7)
insert into DiemThi values(2,1,2,9)
-------------------insert into DiemThi values(3,1,1,8)
insert into DiemThi values(3,2,1,2)
insert into DiemThi values(3,2,2,6)
insert into DiemThi values(3,2,3,10)
---------------------Cu 3.a) To view vwLanThiCuoi
go
create view vwLanThiCuoi
as
select MSSV, MSMon, LanThi=max(LanThi)
from DiemThi
group by MSSV, MSMon
---------------------Cu 3.a) To view vwDiemThiCuoi
go
create view vwDiemThiCuoi
as
with BangTam as(select MSSV, MSMon, LanThiMax=max(LanThi)from DiemThi
group by MSSV, MSMon)
select D.*
from BangTam B join DiemThi D on (B.MSSV=D.MSSV and B.MSMon=D.MSMon and
B.LanThiMAX =D.LanThi)
---------------------Cu 4 : To trigger
GO
create trigger itrg_AutoLanThi on DiemThi
for INSERT
AS
declare @MSSV int
declare @MSMon int
select @MSSV = MSSV,@MSMon = MSMon from inserted
if NOT EXISTS (select * from DiemThi where MSSV=@MSSV and
MSMon=@MSMon)
begin
print'MSSV them vao khong ton tai'
rollback tran
return
end
update DiemThi set DiemThi.LanThi = DiemThi.LanThi + 1
from INSERTED I where I.MSSV=@MSSV and I.MSMon=@MSMon
---------------------Cu 5 : To th tc
go
create proc ThongTinSV(@MSSV int=1)
https://www.facebook.com/minhduc2091

as
Begin
select MSMon,LanThi,Diem
from DiemThi
where MSSV = @MSSV
End
-------------------go
exec ThongTinSV 3
go
insert into DiemThi(MSSV,MSMon,Diem) values(4,1,7)

https://www.facebook.com/minhduc2091

GII 2
use master
go
if exists(select * from sys.databases where name='De2')
drop database De2
go
create database De2
go
use De2
go
-------------------create table Doi
(
MSDoi int primary key,
TenDoi varchar(40),
Phai bit
)
-------------------create table TranDau
(
MSTD int primary key,
NgayTD datetime,
GioBD smalldatetime,
GioKT smalldatetime ,
)
-------------------create table DoiThiDau
(
MSTD int references TRANDAU(MSTD),
MSDOI int,
primary key(MSTD,MSDoi),
foreign key(MSDOI) references Doi(MSDOI),
)
go
Alter table TranDau ADD
check(GioBD < GioKT),
unique(GioBD,NgayTD)
-------------------go
insert into Doi values (1,'Hoang Anh Gia Lai','True')
insert into Doi values (2,'Hoang Anh Gia Lai','False')
insert into Doi values (3,'Dong Tam Long An','True')
insert into Doi values (4,'SHB Da Nang','True')
insert into Doi values (5,'SHB Da Nang','False')
insert into Doi values (6,'Dong Nai','False')
insert into TranDau values (1,'10/10/1998','10/10/1998 2:00:00 PM','10/10/1998 4:00:00
PM')
insert into TranDau values (2,'10/10/1998','10/10/1998 5:00:00 PM','10/10/1998 7:00:00
PM')
https://www.facebook.com/minhduc2091

insert into TranDau values (3,'10/11/1998','10/10/1998 7:00:00 PM','10/10/1998 9:00:00


PM')
insert into TranDau values (4,'10/12/1998','10/10/1998 6:15:00 AM','10/10/1998 8:15:00
AM')
insert into TranDau values (5,'10/12/1998','10/10/1998 3:30:00 PM','10/10/1998 5:30:00
PM')
insert into TranDau values (6,'10/12/1998','10/10/1998 7:00:00 PM','10/10/1998 9:00:00
PM')
insert into DoiThiDau values (1,1)
insert into DoiThiDau values (1,3)
insert into DoiThiDau values (2,1)
insert into DoiThiDau values (2,4)
insert into DoiThiDau values (3,2)
insert into DoiThiDau values (3,5)
-----------------go
create view vwDoiChuaThiDau
as
select * from Doi A
where A.MSDoi NOT IN (select B.MSDoi from DoiThiDau B)
-------------------go
create view vwSoTranDau
as
select NgayTD, SoTD=count(MSTD)
from TranDau
group by NgayTD
-------------------go
create proc ThongTinTD(@MSTD int)
as
if NOT exists (select * from DoiThiDau where MSTD = @MSTD)
Begin
print'Tran dau khong ton tai'
End
else
Begin
select MSTD,DoiThiDau.MSDoi,TenDoi,Phai
from DoiThiDau join Doi on DoiThiDau.MSDoi = Doi.MSDoi
where MSTD = @MSTD
End
-------------------go
exec ThongTinTD 2

https://www.facebook.com/minhduc2091

GII 3
USE master
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = 'De3')
BEGIN
DROP DATABASE De3
END
GO
CREATE DATABASE De3
GO
USE De3
GO
-------------------CREATE TABLE MATHANG
(
MSMH int PRIMARY KEY ,
TENMH varchar(100),
DONGIA money DEFAULT 0 CHECK (DONGIA >=0),
SOTON int
)
-------------------CREATE TABLE HOADON
(
MSHD int PRIMARY KEY,
NGAYLAPHD datetime DEFAULT GETDATE() NOT NULL,
)
-------------------CREATE TABLE CTHD
(
MSHD int references HOADON,
MSMH int references MATHANG,
SOLUONG Smallint DEFAULT 0 CHECK ( SOLUONG > 0),
DONGIABAN MONEY DEFAULT 0 CHECK ( DONGIABAN > 0),
PRIMARY KEY (MSHD,MSMH),
FOREIGN KEY(MSHD) references HOADON(MSHD),
FOREIGN KEY(MSMH) references MATHANG(MSMH)
)
GO
ALTER TABLE MATHANG ADD
default 0 for SOTON,
unique(TENMH)
-------------------INSERT INTO MATHANG VALUES (1,'Ruou',230.5,201)
INSERT INTO MATHANG VALUES (2,'Gia vi',40,82)
INSERT INTO MATHANG VALUES (3,'Banh kem',10,0)
INSERT INTO MATHANG VALUES (4,'Bo',38,30)
INSERT INTO MATHANG VALUES (5,'Banh mi',8,435)
INSERT INTO MATHANG VALUES (6,'Nem',23.8,97)
INSERT INTO MATHANG VALUES (7,'Tao',5,33)
INSERT INTO MATHANG VALUES (8,'Ca hop',62.5,100)
INSERT INTO MATHANG VALUES (9,'Cam',11,50)
https://www.facebook.com/minhduc2091

-------------------INSERT INTO HOADON VALUES (10144,'3/30/2003')


INSERT INTO HOADON VALUES (10150,'4/9/2003')
INSERT INTO HOADON VALUES (10156,'4/20/2003')
INSERT INTO HOADON VALUES (10158,'4/22/2003')
INSERT INTO HOADON VALUES (10175,'5/19/2003')
INSERT INTO HOADON VALUES (10177,'5/21/2003')
INSERT INTO HOADON VALUES (10193,'6/10/2003')
INSERT INTO HOADON VALUES (10207,'6/29/2003')
INSERT INTO HOADON VALUES (10225,'7/21/2003')
INSERT INTO HOADON VALUES (10226,'7/22/2003')
INSERT INTO HOADON VALUES (10255,'8/27/2003')
INSERT INTO HOADON VALUES (10258,'8/30/2003')
INSERT INTO HOADON VALUES (10261,'9/5/2003')
-------------------INSERT INTO CTHD VALUES (10144,2,35,42)
INSERT INTO CTHD VALUES (10144,6,20,25)
INSERT INTO CTHD VALUES (10144,3,10,10.5)
INSERT INTO CTHD VALUES (10150,6,9,25)
INSERT INTO CTHD VALUES (10156,2,25,42)
INSERT INTO CTHD VALUES (10158,4,12,39.9)
INSERT INTO CTHD VALUES (10158,6,20,25)
INSERT INTO CTHD VALUES (10175,8,12,65.6)
INSERT INTO CTHD VALUES (10177,4,6,39.9)
INSERT INTO CTHD VALUES (10177,6,30,25)
INSERT INTO CTHD VALUES (10193,6,15,25)
INSERT INTO CTHD VALUES (10207,1,10,242)
INSERT INTO CTHD VALUES (10225,1,10,242)
INSERT INTO CTHD VALUES (10225,4,70,39.9)
INSERT INTO CTHD VALUES (10226,4,21,39.9)
INSERT INTO CTHD VALUES (10255,3,35,10.5)
INSERT INTO CTHD VALUES (10255,1,20,242)
INSERT INTO CTHD VALUES (10255,5,55,8.4)
INSERT INTO CTHD VALUES (10258,1,50,242)
INSERT INTO CTHD VALUES (10261,3,60,10.5)
-------------------GO
CREATE VIEW vwTienHD
AS
SELECT H.MSHD,NGAYLAPHD,TIENHD= SUM(SOLUONG*DONGIABAN)
FROM HOADON H JOIN CTHD C ON H.MSHD = C.MSHD
GROUP BY H.MSHD,NGAYLAPHD
-------------------GO
CREATE VIEW vwHangKhongBanDuoc
AS
SELECT M.* FROM MATHANG M
WHERE MSMH NOT IN( SELECT C.MSMH FROM CTHD C
https://www.facebook.com/minhduc2091

WHERE C.MSHD IN(SELECT H.MSHD FROM


HOADON H))
-------------------GO
CREATE PROC DoanhThu(@Thang int = NULL,@Nam int = NULL)
AS
IF @Nam is NULL
BEGIN
print'Gia tri INPUT = NULL'
END
ELSE
IF @Thang is NULL
BEGIN
SELECT M.MSMH,DOANHTHU=
SUM(SOLUONG*DONGIABAN)
FROM (MATHANG M JOIN CTHD C ON M.MSMH = C.MSMH)
JOIN HOADON H ON H.MSHD = C.MSHD
WHERE YEAR(NGAYLAPHD) = @Nam
GROUP BY M.MSMH
END
ELSE
BEGIN
SELECT M.MSMH,DOANHTHU=
SUM(SOLUONG*DONGIABAN)
FROM (MATHANG M JOIN CTHD C ON M.MSMH = C.MSMH)
JOIN HOADON H ON H.MSHD = C.MSHD
WHERE MONTH(NGAYLAPHD) = @Thang and
YEAR(NGAYLAPHD) = @Nam
GROUP BY M.MSMH
END
-------------------GO
EXEC DoanhThu 6,2003
GO
EXEC DoanhThu @Nam=2003

https://www.facebook.com/minhduc2091

GII 4
USE master
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = 'De4')
BEGIN
DROP DATABASE De4
END
GO
CREATE DATABASE De4
GO
USE De4
GO
-------------------CREATE TABLE SACH
(
MASACH INT PRIMARY KEY,
TENSACH VARCHAR(100),
SOLUONG INT,
SODAMUON INT
)
-------------------CREATE TABLE DOCGIA
(
MADG INT PRIMARY KEY,
TENDG VARCHAR(100)
)
-------------------CREATE TABLE PHIEUMUON
(
MADG INT,
NGAYMUON DATETIME,
MASACH INT,
NGAYTRA DATETIME,
PRIMARY KEY(MADG,NGAYMUON),
FOREIGN KEY(MADG) REFERENCES DOCGIA(MADG)
)
GO
ALTER TABLE SACH ADD
CHECK(SOLUONG >= SODAMUON)
GO
ALTER TABLE PHIEUMUON ADD
DEFAULT GETDATE() FOR NGAYMUON
-------------------GO
INSERT INTO SACH VALUES (1,'Cuon theo chieu gio',10,2)
INSERT INTO SACH VALUES (2,'Ong gia va bien ca',2,2)
INSERT INTO SACH VALUES (3,'Tat den',20,3)
INSERT INTO SACH VALUES (4,'Toan roi rac',1,1)
INSERT INTO SACH VALUES (5,'Lap trinh C#',4,4)
INSERT INTO SACH VALUES (6,'Lich su Dang',3,0)
INSERT INTO SACH VALUES (7,'Kinh van hoa',30,5)
https://www.facebook.com/minhduc2091

INSERT INTO SACH VALUES (8,'Chien tranh va hoa binh',10,0)


-------------------GO
INSERT INTO DOCGIA VALUES (1,'Nguyen Hoang Long')
INSERT INTO DOCGIA VALUES (2,'Nguyen Minh Tam')
INSERT INTO DOCGIA VALUES (3,'Le Quoc Thinh')
INSERT INTO DOCGIA VALUES (4,'To Hoai Tan')
INSERT INTO DOCGIA VALUES (5,'Nguyen Trung Truc')
INSERT INTO DOCGIA VALUES (6,'La Phi Hung')
-------------------GO
INSERT INTO PHIEUMUON VALUES (1,'5/20/2000',2,'5/27/2000')
INSERT INTO PHIEUMUON VALUES (1,'5/30/2000',5,'6/20/2000')
INSERT INTO PHIEUMUON VALUES (1,'7/7/2000',7,'7/25/2000')
INSERT INTO PHIEUMUON VALUES (1,'7/1/2000',8,NULL)
INSERT INTO PHIEUMUON VALUES (2,'7/2/2000',7,NULL)
INSERT INTO PHIEUMUON VALUES (2,'7/3/2000',5,NULL)
INSERT INTO PHIEUMUON VALUES (3,'7/4/2000',5,'7/11/2000')
INSERT INTO PHIEUMUON VALUES (3,'7/5/2000',3,'7/12/2000')
INSERT INTO PHIEUMUON VALUES (3,'7/6/2000',7,'7/13/2000')
INSERT INTO PHIEUMUON VALUES (4,'7/7/2000',1,'7/14/2000')
INSERT INTO PHIEUMUON VALUES (4,'7/8/2000',7,NULL)
INSERT INTO PHIEUMUON VALUES (4,'7/9/2000',2,'7/16/2000')
INSERT INTO PHIEUMUON VALUES (4,'7/10/2000',3,'7/17/2000')
INSERT INTO PHIEUMUON VALUES (5,'7/11/2000',5,NULL)
INSERT INTO PHIEUMUON VALUES (5,'7/12/2000',4,NULL)
INSERT INTO PHIEUMUON VALUES (5,'7/13/2000',7,'7/20/2000')
INSERT INTO PHIEUMUON VALUES (6,'7/14/2000',3,'7/21/2000')
-------------------GO
CREATE VIEW vwHetSach
AS
SELECT MASACH,TENSACH FROM SACH
WHERE SOLUONG = SODAMUON
-------------------GO
CREATE VIEW vwChuaTraSach
AS
SELECT D.MADG,D.TENDG,NGAYMUON,TENSACH
FROM (DOCGIA D JOIN PHIEUMUON P ON D.MADG=P.MADG) JOIN SACH
S ON S.MASACH=P.MASACH
WHERE NGAYTRA IS NULL
-------------------GO
CREATE PROC SoSachChoMuon(@MASACH INT)
AS
BEGIN
IF NOT EXISTS (SELECT MASACH FROM SACH WHERE MASACH =
@MASACH)
https://www.facebook.com/minhduc2091

PRINT'Ma sach khong ton tai'


ELSE
SELECT MASACH,SoSachConLai = SOLUONG - SODAMUON
FROM SACH
WHERE MASACH = @MASACH
END
-------------------GO
EXEC SoSachChoMuon 7

https://www.facebook.com/minhduc2091

GII 5
USE master
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = 'De5')
BEGIN
DROP DATABASE De5
END
GO
CREATE DATABASE De5
GO
USE De5
GO
-------------------CREATE TABLE NgachLuong
(
MSNgach INT PRIMARY KEY,
MOTA VARCHAR(100)
)
-------------------CREATE TABLE DMNganhBac
(
MSNgach INT,
BAC INT,
HSLuong FLOAT,
PRIMARY KEY(MSNgach,BAC),
FOREIGN KEY(MSNgach) REFERENCES NgachLuong(MSNgach)
)
-------------------CREATE TABLE NhanVien
(
MSNV INT PRIMARY KEY,
HO VARCHAR(50),
TEN VARCHAR(50),
MSNgach INT,
BAC INT,
NGAYNLCC DATETIME
)
-------------------GO
ALTER TABLE DMNganhBac ADD
UNIQUE(MSNgach,HSLuong)
GO
ALTER TABLE NhanVien ADD
DEFAULT 1 FOR BAC
-------------------GO
CREATE VIEW vwHSLuong
AS
SELECT MSNV,N.MSNgach,N.BAC,HSLuong
FROM DMNganhBac D JOIN NhanVien N ON D.MSNgach = n.MSNgach
GROUP BY MSNV,N.MSNgach,N.BAC,HSLuong
https://www.facebook.com/minhduc2091

-------------------GO
CREATE VIEW vwNangLuong
AS
SELECT * FROM NhanVien
WHERE DATEDIFF(M,NGAYNLCC,GETDATE())>=24
-------------------GO
CREATE PROC DSNangLuong(@Nam int = NULL)
AS
IF @Nam IS NULL
SELECT * FROM NhanVien
WHERE YEAR(NGAYNLCC)=YEAR(GETDATE())
ELSE
SELECT * FROM NhanVien
WHERE YEAR(NGAYNLCC) = @Nam
-------------------GO
EXEC DSNangLuong 2000

https://www.facebook.com/minhduc2091

GII 6
USE MASTER
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = 'De6')
BEGIN
DROP DATABASE De6
END
GO
CREATE DATABASE De6
GO
USE De6
GO
-------------------CREATE TABLE TINH
(
MSTinh varchar(5) primary key,
TenTinh varchar(100) NOT NULL,
DienTich decimal NOT NULL,
DanSo decimal NOT NULL,
TinhBG bit
)
-------------------CREATE TABLE BIENGIOI
(
MSTinh varchar(5),
TenNuoc varchar(100),
primary key (MSTinh,TenNuoc),
foreign key(MSTinh) references TINH(MSTinh)
)
-------------------CREATE TABLE LANGGIENG
(
MSTinh varchar(5),
MSTinhLG varchar(5),
primary key (MSTinh,MSTinhLG),
foreign key(MSTinh) references TINH(MSTinh)
)
GO
ALTER TABLE LANGGIENG ADD
check(MSTinh<>MSTinhLG)
GO
ALTER TABLE TINH ADD
unique(MSTinh)
-------------------GO
INSERT INTO TINH VALUES('AG','AN GIANG',3493,1812200,'True')
INSERT INTO TINH VALUES('BD','BINH DINH',4503,1420600,'False')
INSERT INTO TINH VALUES('BG','BINH DUONG',3859,590800,'False')
INSERT INTO TINH VALUES('BI','BINH THUAN',5345,786300,'False')
INSERT INTO TINH VALUES('BL','BAC LIEU',4697,571500,'False')
INSERT INTO TINH VALUES('BP','BINH PHUOC',6687,236500,'True')
https://www.facebook.com/minhduc2091

INSERT INTO TINH VALUES('BT','BEN TRE',2225,1184100,'False')


INSERT INTO TINH VALUES('CB','CAO BANG',8445,564400,'True')
INSERT INTO TINH VALUES('CM','CA MAU',3211,866100,'False')
INSERT INTO TINH VALUES('CT','CAN THO',4126,1559300,'False')
INSERT INTO TINH VALUES('DL','DAC LAC',11800,661000,'True')
INSERT INTO TINH VALUES('DN','DONG NAI',7578,1741000,'False')
INSERT INTO TINH VALUES('DT','DONG THAP',3391,1335700,'True')
INSERT INTO TINH VALUES('GL','GIA LAI',25536,764200,'True')
INSERT INTO TINH VALUES('HB','HA BAC',4609,1929300,'False')
INSERT INTO TINH VALUES('HT','HA TINH',9845,1300500,'True')
INSERT INTO TINH VALUES('KG','KIEN GIANG',6358,1150500,'True')
INSERT INTO TINH VALUES('KH','KHANH HOA',3773,836700,'False')
INSERT INTO TINH VALUES('LA','LONG AN',4355,1105300,'True')
INSERT INTO TINH VALUES('LC','LAI CHAU',17068,387400,'True')
INSERT INTO TINH VALUES('LD','LAM DONG',9933,511300,'False')
INSERT INTO TINH VALUES('NA','NGHE AN',12502,2457600,'True')
INSERT INTO TINH VALUES('NT','NINH THUAN',6374,495600,'False')
INSERT INTO TINH VALUES('PY','PHU YEN',6804,549700,'False')
INSERT INTO TINH VALUES('QB','QUANG BINH',7340,501800,'True')
INSERT INTO TINH VALUES('QN','QUANG NGAI',7900,967500,'False')
INSERT INTO TINH VALUES('QT','QUANG TRI',8555,603350,'True')
INSERT INTO TINH VALUES('SG','TP.HO CHI MINH',2029,3667600,'False')
INSERT INTO TINH VALUES('ST','SOC TRANG',2523,960400,'False')
INSERT INTO TINH VALUES('TG','TIEN GIANG',2337,1399100,'False')
INSERT INTO TINH VALUES('TN','TAY NINH',4030,772500,'True')
INSERT INTO TINH VALUES('TT','THUA THIEN HUE',3123,1000500,'True')
INSERT INTO TINH VALUES('TV','TRA VINH',1732,836200,'False')
INSERT INTO TINH VALUES('VL','VINH LONG',2154,923600,'False')
-------------------INSERT INTO BIENGIOI VALUES('AG','CAMPUCHIA')
INSERT INTO BIENGIOI VALUES('BP','CAMPUCHIA')
INSERT INTO BIENGIOI VALUES('CB','TRUNGQUOC')
INSERT INTO BIENGIOI VALUES('DL','CAMPUCHIA')
INSERT INTO BIENGIOI VALUES('DT','CAMPUCHIA')
INSERT INTO BIENGIOI VALUES('GL','CAMPUCHIA')
INSERT INTO BIENGIOI VALUES('GL','LAO')
INSERT INTO BIENGIOI VALUES('HT','LAO')
INSERT INTO BIENGIOI VALUES('KG','CAMPUCHIA')
INSERT INTO BIENGIOI VALUES('LA','CAMPUCHIA')
INSERT INTO BIENGIOI VALUES('LC','LAO')
INSERT INTO BIENGIOI VALUES('LC','TRUNGQUOC')
INSERT INTO BIENGIOI VALUES('NA','LAO')
INSERT INTO BIENGIOI VALUES('QB','LAO')
INSERT INTO BIENGIOI VALUES('QT','LAO')
INSERT INTO BIENGIOI VALUES('TN','CAMPUCHIA')
INSERT INTO BIENGIOI VALUES('TT','LAO')
-------------------INSERT INTO LANGGIENG VALUES('AG','DT')
INSERT INTO LANGGIENG VALUES('AG','KG')
https://www.facebook.com/minhduc2091

INSERT INTO LANGGIENG VALUES('AG','CT')


INSERT INTO LANGGIENG VALUES('BD','QN')
INSERT INTO LANGGIENG VALUES('BD','PY')
INSERT INTO LANGGIENG VALUES('BD','GL')
INSERT INTO LANGGIENG VALUES('BG','SG')
INSERT INTO LANGGIENG VALUES('BG','BP')
INSERT INTO LANGGIENG VALUES('BG','DN')
INSERT INTO LANGGIENG VALUES('BI','DN')
INSERT INTO LANGGIENG VALUES('BI','NT')
INSERT INTO LANGGIENG VALUES('BL','CM')
INSERT INTO LANGGIENG VALUES('BL','ST')
INSERT INTO LANGGIENG VALUES('BP','BG')
INSERT INTO LANGGIENG VALUES('BP','DL')
INSERT INTO LANGGIENG VALUES('BT','TG')
INSERT INTO LANGGIENG VALUES('BT','TV')
INSERT INTO LANGGIENG VALUES('CM','BL')
INSERT INTO LANGGIENG VALUES('CT','AG')
INSERT INTO LANGGIENG VALUES('CT','VL')
INSERT INTO LANGGIENG VALUES('CT','TV')
INSERT INTO LANGGIENG VALUES('CT','ST')
INSERT INTO LANGGIENG VALUES('DL','BP')
INSERT INTO LANGGIENG VALUES('DL','GL')
INSERT INTO LANGGIENG VALUES('DL','KH')
INSERT INTO LANGGIENG VALUES('DN','SG')
INSERT INTO LANGGIENG VALUES('DN','BG')
INSERT INTO LANGGIENG VALUES('DN','BI')
INSERT INTO LANGGIENG VALUES('DN','LD')
INSERT INTO LANGGIENG VALUES('DT','AG')
INSERT INTO LANGGIENG VALUES('DT','TG')
INSERT INTO LANGGIENG VALUES('DT','VL')
INSERT INTO LANGGIENG VALUES('DT','LA')
INSERT INTO LANGGIENG VALUES('GL','DL')
INSERT INTO LANGGIENG VALUES('HT','NA')
INSERT INTO LANGGIENG VALUES('HT','QB')
INSERT INTO LANGGIENG VALUES('KG','AG')
INSERT INTO LANGGIENG VALUES('KH','NT')
INSERT INTO LANGGIENG VALUES('KH','PY')
INSERT INTO LANGGIENG VALUES('KH','DL')
INSERT INTO LANGGIENG VALUES('LA','SG')
INSERT INTO LANGGIENG VALUES('LA','TG')
INSERT INTO LANGGIENG VALUES('LA','DT')
INSERT INTO LANGGIENG VALUES('LD','DN')
INSERT INTO LANGGIENG VALUES('LD','NT')
INSERT INTO LANGGIENG VALUES('NA','HT')
INSERT INTO LANGGIENG VALUES('NT','BI')
INSERT INTO LANGGIENG VALUES('NT','LD')
INSERT INTO LANGGIENG VALUES('NT','KH')
INSERT INTO LANGGIENG VALUES('PY','KH')
INSERT INTO LANGGIENG VALUES('PY','BD')
https://www.facebook.com/minhduc2091

INSERT INTO LANGGIENG VALUES('QB','HT')


INSERT INTO LANGGIENG VALUES('QB','QT')
INSERT INTO LANGGIENG VALUES('QN','BD')
INSERT INTO LANGGIENG VALUES('QT','QB')
INSERT INTO LANGGIENG VALUES('QT','TT')
INSERT INTO LANGGIENG VALUES('SG','LA')
INSERT INTO LANGGIENG VALUES('SG','BG')
INSERT INTO LANGGIENG VALUES('SG','TN')
INSERT INTO LANGGIENG VALUES('SG','DN')
INSERT INTO LANGGIENG VALUES('ST','CT')
INSERT INTO LANGGIENG VALUES('ST','BL')
INSERT INTO LANGGIENG VALUES('TG','LA')
INSERT INTO LANGGIENG VALUES('TG','DT')
INSERT INTO LANGGIENG VALUES('TG','BT')
INSERT INTO LANGGIENG VALUES('TN','SG')
INSERT INTO LANGGIENG VALUES('TT','QT')
INSERT INTO LANGGIENG VALUES('TV','VL')
INSERT INTO LANGGIENG VALUES('VL','CT')
INSERT INTO LANGGIENG VALUES('VL','DT')
INSERT INTO LANGGIENG VALUES('VL','TV')
-------------------GO
CREATE VIEW vwTinhLon
AS
SELECT T1.TENTINH FROM TINH T1
WHERE T1.DIENTICH >= all( SELECT T2.DIENTICH FROM TINH T2,
LANGGIENG L2
WHERE T2.MSTINH =
L2.MSTINH)
-------------------GO
CREATE VIEW vwSoNuocGiapRanh
AS
SELECT T.MSTinh,TenTinh,SoNuocGiapRanh=Count(TenNuoc)
FROM TINH T join BIENGIOI B on T.MSTinh = B.MSTinh
GROUP BY T.MSTinh,TenTinh
-------------------GO
CREATE PROC ThongTinTLG(@MSTinh varchar(5) = NULL)
AS
BEGIN
IF @MSTinh IS NULL
PRINT'Ma tinh khong ton tai'
ELSE
BEGIN
WITH TinhLG
AS (SELECT T.MSTinh,T.TenTinh FROM TINH T
WHERE T.MSTinh IN (SELECT MSTinhLG FROM
LANGGIENG L WHERE L.MSTinh = @MSTinh))
https://www.facebook.com/minhduc2091

SELECT STT=RANK() OVER(ORDER BY MSTinh),* FROM


TinhLG
END
END
-------------------GO
EXEC ThongTinTLG 'DN'

https://www.facebook.com/minhduc2091

Gii 7
go
create database DeThi
go
use DeThi
go
---------------------Cu 1 : To TABLE
create table ThiSinh
(
MSTS int primary key,
Ho varchar(30),
Ten varchar(50),
NgaySinh datetime,
SBD int,
PhongThi varchar(10)
)
-------------------create table MonThi
(
MSMon int primary key,
TenMon varchar(30)
)
-------------------create table DiemMonThi
(
MSTS int,
MSMon int,
DiemThi int,
primary key(MSTS,MSMon),
foreign key(MSTS) references ThiSinh(MSTS),
foreign key(MSMon) references MonThi(MSMon),
)
--Cu 2 : B sung rng buc
go
Alter table ThiSinh ADD unique(SBD)
go
Alter table DiemMonThi ADD check(DiemThi between 0 and 10)
-------------------insert into ThiSinh values (1,'Nguyen Hoang','Long','11/10/1989',38,102)
insert into ThiSinh values (2,'Le Ngoc','Nam','11/10/1989',42,102)
insert into ThiSinh values (3,'Le Thanh','Phuc','11/10/1989',50,102)
insert into ThiSinh values (4,'Diep Hoang','Minh','11/10/1989',41,102)
insert into ThiSinh values (5,'Giap Tuan','An','11/10/1989',1,101)
insert into ThiSinh values (6,'Tran The','Dai','11/10/1989',9,101)
insert into ThiSinh values (7,'Pham Thi Viet','Ha','11/10/1989',21,101)
insert into ThiSinh values (8,'Nguyen Quoc Trung','Hieu','11/10/1989',24,101)
insert into ThiSinh values (9,'La Phi','Hung','11/10/1989',28,101)
insert into ThiSinh values (10,'Dang Ngoc','Son','11/10/1989',53,103)
insert into ThiSinh values (11,'Nguyen Van','Son','11/10/1989',54,103)
insert into ThiSinh values (12,'Nguyen Minh','Tam','11/10/1989',56,103)
https://www.facebook.com/minhduc2091

insert into ThiSinh values (13,'Nguyen Thanh','Tam','11/10/1989',59,103)


-------------------insert into MonThi values (1,'Toan A3')
insert into MonThi values (2,'TTHCM')
-------------------insert into DiemMonThi values(1,1,2)
insert into DiemMonThi values(1,2,3)
insert into DiemMonThi values(2,1,4)
insert into DiemMonThi values(2,2,5)
insert into DiemMonThi values(3,1,6)
insert into DiemMonThi values(3,2,7)
insert into DiemMonThi values(4,1,8)
insert into DiemMonThi values(4,2,9)
insert into DiemMonThi values(5,2,5)
insert into DiemMonThi values(6,1,2)
insert into DiemMonThi values(6,2,3)
insert into DiemMonThi values(8,1,6)
insert into DiemMonThi values(8,2,7)
insert into DiemMonThi values(9,2,9)
insert into DiemMonThi values(11,1,2)
insert into DiemMonThi values(12,1,4)
insert into DiemMonThi values(12,2,5)
---------------------Cu 3.a) To view vwBoThi
go
create view vwBoThi
as
select T.* from ThiSinh T
where T.MSTS NOT IN (select D.MSTS from DiemMonThi D)
---------------------Cu 3.b) To view vwKetQuaThi
go
create view vwDiemThiCuoi
as
with TongDiem as (select SBD,Ho,Ten,Ngaysinh,PhongThi,TongDiemThi =
SUM(DiemThi)
from ThiSinh T join DiemMonThi D on T.MSTS = D.MSTS
group by SBD,Ho,Ten,Ngaysinh,PhongThi)
select STT=Rank() over(partition by PhongThi order by SBD),* from TongDiem
-------------------Cu 4 : To trigger
GO
create trigger utrg_SuaPhongThi on ThiSinh
for UPDATE
AS
if (select count(T.MSTS) from ThiSinh T where T.PhongThi=(select I.PhongThi
from INSERTED I)) >=5
begin
print'So thi sinh khong duoc >5'
https://www.facebook.com/minhduc2091

rollback tran
end
---------------------Kim tra trigger
go
select * from ThiSinh where MSTS = 1
go
update ThiSinh set PhongThi = 101 where MSTS = 1
go
select * from ThiSinh where MSTS = 1
---------------------Cu 5 : To th tc
go
create proc Auto_SBD
as
Begin
select MSTS,Ho,Ten,Ngaysinh,PhongThi,SBD=ROW_NUMBER() over(order by
Ten) from ThiSinh
End
-------------------go
exec Auto_SBD

https://www.facebook.com/minhduc2091

You might also like