You are on page 1of 17

I.

To CSDL
1. To cu trc bng v cc rng buc kha chnh, kha ngoi
Danh mc Vt t (VATTU)
Tn ct ngha Ki! " #ng
$aVT! M vt t har !
T"n#Tu T$n vt t %varchar 1&&
'#Tinh ()n v* tnh %varchar 1&
+hanTra, T- ./ 0h1n tr2, 3"a.
Danh mc %h& c!ng c'( (%)ACC)
Tn ct ngha Ki! " #ng
$a%haCc M nh cung c0 har 4
T"n%ha T$n nh cung c0 %varchar 1&&
'iahi (*a ch5 %varchar 6&&
'i"nThoai (i/n thoi #archar 6&
"*n +,t h&ng (D-%D))
Tn ct ngha Ki! " #ng
SoDh 78 9)n 9:t hng har !
%ga;'< %g; 9:t hng 'at"ti,"
Ma%ha M nh cung c0 har 4
Chi ti.t "*n +,t h&ng (CTD-%D))
Tn ct ngha Ki! " #ng
SoDh 78 9)n 9:t hng har !
$aVT! M vt t har !
7='at 78 .>ng 9:t hng ?nt
/hi.! nh( h&ng (/%)A/)
Tn ct ngha Ki! " #ng
So/% 78 0hi@u nh0
hng
har !
%ga;%ha0 %g; nh0 hng 'at"ti,"
7o'< 78 9)n 9:t hng har !
Chi ti.t nh( h&ng ( CT/%)A/)
Tn ct ngha Ki! " #ng
So/% 78 0hi@u nh0
hng
har !
$aVT! M vt t har !
7=%ha0 78 .>ng nh0
hng
?nt
'A%ha0 ()n gi nh0 Mon";
hng
/hi.! 0!'t h&ng (/1UAT)
Tn ct ngha Ki! " #ng
So/1 78 0hi@u But
hng
har !
%ga;Cuat %g; But hng 'at"ti,"
T"nD< T$n khch hng %varchar 1&&
Chi ti.t 0!'t h&ng (CT/1UAT)
Tn ct ngha Ki! " #ng
So/1 78 0hi@u But
hng
har !
$aVT! M vt t har !
7=Cuat 78 .>ng But
hng
?nt
'ACuat ()n gi But
hng
Mon";
T2n 3ho (T-%K)-)
Tn ct ngha Ki! " #ng
%amThang %4m th5ng Cha# 6
$aVT! M vt t har !
7='au 78 .>ng tEn 91u
kF
?nt
Tong7=% TGng H8 .>ng
nh0 trong kF
?nt
Tong7=C TGng H8 .>ng
But trong kF
?nt
7=uoi 78 .>ng tEn cu8i
kF
?nt
Trong thuc tnh Ior,u.a cJa ct 7=uoiK 7='auLTong7=%MTong7=C
7. %h( 89 :i;! m<! =&o c5c >?ng nh @a!A
B?ng %)ACC
$a%haCC TCn%haCC DiaChi DiCnThoai
&1 =$ Minh Tr N! <u Aiang OP
<M
QRQ1&6!
&6 Tr1n Minh Thch 1!N <Sng #)ng
MT Tho
RPUQ1N!
&4 <Eng +h)ng 1N!VQN =$ =ai O1
<M
UP&&16N
&! %ht ThWng 1UQV!& <)ng =
1!OTX <M
QRNRNR
&N =u %gu;/t Ou@ 1RQ %gu;Yn #2n
=uZng ( =t
RUP!6N1
&P ao Minh Trung 16N =$ Ouang
7ung ( =t
ha c
B?ng VATTU
$aVT! TCnVT! DVTinh /hanT#am
''&1 (1u '#' <itachi
1 9[a
X !&
''&6 (1u '#' <itachi
4 9[a
X !&
T=1N TJ .nh 7an;o
1N& .t
i 6N
T=U& TJ .nh 7an;o U&
.t
i 6&
T#1! Tivi 7on; 1!
inch"H
i 1N
T#61 Tivi 7on; 61
inch"H
i 1&
T#6U Tivi 7on; 6U
inch"H
i 1&
#'&1 (1u #' 7on; 1
9[a
X 4&
#'&6 (1u #' 7on; 4
9[a
X 4&
B?ng D-%D)
SoD) %gaDD) $a%haCC
'&&1 &1V1NV6&&N &4
'&&6 &1V4&V6&&N &1
'&&4 &6V1&V6&&N &6
'&&! &6V1RV6&&N &N
'&&N &4V&1V6&&N &6
'&&P &4V16V6&&N &N
B?ng CTD-%D)
SoD) $aVT! SLDat
'&&1 ''&1 1&
'&&1 ''&6 1N
'&&6 #'&6 4&
'&&4 T#1! 1&
'&&4 T#6U 6&
'&&! T=U& 1&
'&&N T#1! 1&
'&&N T#6U 6&
'&&P T#1! 1&
'&&P T#6U 6&
'&&P #'&1 6&
B?ng /%)A/
So/% %gaD%ha( SoD)
%&&1 &1V1RV6&&N '&&1
%&&6 &1V6&V6&&N '&&1
%&&4 &1V41V6&&N '&&6
%&&! &6V1NV6&&N '&&4
B?ng CT/%)A/
So/% $aVT! SL%ha( DE%ha(
%&&1 ''&1 Q 6.N&&.&&&
%&&1 ''&6 1& 4.N&&.&&&
%&&6 ''&1 6 6.N&&.&&&
%&&6 ''&6 N 4.N&&.&&&
%&&4 #'&6 4& 6.N&&.&&&
%&&! T#1! N 6.N&&.&&&
%&&! T#6U 16 4.N&&.&&&
B?ng /1UAT
So/1 %gaD1!at TCnK)
C&&1 &1V1RV6&&N %gu;Yn ThS; ')ng
C&&6 &1V6NV6&&N %gu;Yn <u; T
C&&4 &1V41V6&&N %gu;Yn Tun T
B?ng CT/1UAT
So/1 $aVT! SL1!at DE1!at
C&&1 ''&1 6 4.N&&.&&&
C&&6 ''&1 1 4.N&&.&&&
C&&6 ''&6 N !.U&&.&&&
C&&4 ''&1 4 4.N&&.&&&
C&&4 ''&6 6 !.U&&.&&&
C&&4 #'&6 1& 4.6N&.&&&
B?ng T-%K)-
%amThang $aVT! SLDa! TongSLDa! TongSLC!oi SLC!oi
6&&N&1 ''&1 & 1& P !
6&&N&1 ''&6 & 1N R Q
6&&N&1 #'&6 & 4& 1& 6&
6&&N&6 ''&1 ! & & !
6&&N&6 ''&6 Q & & Q
6&&N&6 #'&6 6& & & 6&
6&&N&6 T#1! N & & N
6&&N&6 T#6U 16 & & 16
II. To c5c t#!D ='n @a!A
F. Vi.t cG! :;nh + gi?m FHI +*n gi5 nh( cho c5c m,t h&ng nh( =&o ng&D thJ t
UPDATE CTPNHAP
SET DGNhap=DGNhap-DGNhap*15/100
FROM PNHAP INNER JOIN CTPNHAP ON PNHAP.SoPN=CTPNHAP.SoPN
WHERE Na!Nhap IN "SE#ECT Na!Nhap
FROM PNHAP
WHERE DATENAME"DW$Na!Nhap%=&S'()a!&%
7. Vi.t cG! :;nh + 0Ka +i c5c +*n +,t h&ng =&o thJ hai L cMa nh9ng nh& c!ng c'( N
T/.)C$
DE#ETE
FROM DONDH
WHERE Na!DH IN "SE#ECT Na!DH
FROM DONDH INNER JOIN NHACC ON
DONDH.MaNhaCC=NHACC.MaNhaCC
WHERE DATENAME"DW$ Na!DH%=&Mo()a!& AND D*aCh* #I+E
&,HCM,&%
O. Cho >i.t 8anh @5ch c5c +*n +,t h&ng cha tPng +Qc nh( h&ng
SE#ECT *
FROM DONDH
WHERE SoDH NOT IN " SE#ECT SoDH
FROM PNHAP%
R. Cho >i.t 8anh @5ch c5c m,t h&ng cha >ao giS +Qc +,t h&ng
SE#ECT *
FROM -ATTU
WHERE Ma-T' NOT IN "SE#ECT Ma-T'
FROM CTDONDH%
5. Cho bit nh cung cp no c nhiu n t hng nht
SE#ECT TOP 1 WITH TIES MaNhaCC$ COUNT"*% AS To(SoDONDH
FROM DONDH
GROUP ./ MaNhaCC
ORDER ./ To(SoDONDH DESC
6. Cho >i.t =t t n&o cK tTng @U :Qng 0!'t >5n :& :Vn nh't
SE#ECT TOP 1 WITH TIES Ma-T'$ SUM"S#0'a1% AS To(S#0'a1
FROM CTP0UAT
GROUP ./ Ma-T'
ORDER ./ To(S#0'a1 DESC
W. Cho >i.t +*n +,t h&ng n&o cK nhiX! m,t h&ng nh't
SE#ECT TOP 1 WITH TIES SoDH$ COUNT"*% AS SoMa1Ha(
FROM CTDONDH
GROUP ./ SoDH
ORDER ./ SoMa1Ha( DESC
8. Hin th cc thng tin trong bng CT!"#T $ b% &ung th'( c)t thnh tin* &+o
cho c th,ng -' ./ng t%ng c)ng &, tin 0 t1ng phiu 2ut.
SE#ECT * $"S#0'a1*DG0'a1% AS Tha(hT*2(
FROM CTP0UAT
ORDER ./ SoP0
COMPUTE SUM"S#0'a1*DG0'a1% ./ SoP0
3. Hin th cc thng tin 4 (5 $6t t7 * &, nh6p hng* &, 879ng nh6p* n gi nh6p
trong bng CT:H# $ th,ng -' ./ng t%ng c)ng &, 879ng * gi thp nht* gi
c+o nht 0 t1ng $6t t7.
SE#ECT Ma-T'$ SoPN$ S#Nhap$ DGNhap
FROM CTPNHAP
ORDER ./ Ma-T'
COMPUTE SUM"S#Nhap%$MIN"DGNhap%$ MA0"DGNhap% ./ Ma-T'
III. S3 )4( 56 ph7p IF$ WHI#E 89 CASE :;( 89o 575 :<(h 1='! 8>( 5?( 1h*@1 1=o( 575 !A'
5?' Ba'C
1. Cho bit n gi 2ut trung b;nh c<+ hng h+ =>?u @A@ Hit+chi B C+D trong
bng CT!"#T hiEn giF 8 b+o nhi'uG :u 8Hn hn I.8JJ.JJJ th; in r+ =-hng
n'n th+K %i gi bnD* ng79c 8Li in r+ =5 n 8Mc tNng gi bnD
M COCH B4
DEC#ARE DDGT. REA#
SE#ECT DDGT. = A-G"DG0'a1%
FROM CTP0UAT
WHERE Ma-T' IN "SE#ECT Ma-T'
FROM -ATTU
WHERE T2(-T' = &E?' D-D H*1a5h* 1 FGa&%
IF DDGT. H IJ00000
PRINT N&+hK( (A( 1ha! FL* *7 M7(&
E#SE
PRINT N&EN F@( :65 1O( *7 M7(&
M COCH P4
IF"SE#ECT A-G"DG0'a1% FROM CTP0UAT WHERE Ma-T' IN "SE#ECT Ma-T' FROM
-ATTU WHERE T2(-T' = &E?' D-D H*1a5h* 1 FGa&%%HIJ00000
PRINT N&+hK( (A( 1ha! FL* *7 M7(&
E#SE
PRINT N&EN F@( :65 1O( *7 M7(&
P. QR .Sng h( @#TT:#UT tVnh 2W( c n t hng no 5 79c 86p $o ngK
ch< nh6t -hngG:u c th; in r+ .+nh &ch cc n t hng * ng79c 8Li th; in
r+ chuXi Y:gK 86p cc n hng u 8 h9p 8EZ.
DEC#ARE DDEM INT
SE#ECT DDEM=COUNT"*%
FROM DONDH
WHERE DATENAME"DW$ Na!DH%=&S'()a!&
IF DDEM H 0
SE#ECT * FROM DONDH WHERE DATENAME"DW$ Na!DH%=&S'()a!&
E#SE
PRINT N&N9! :Qp 575 FR( h9( FS' :9 hTp :<&
I. H5K cho bit 5 c b+o nhi'u phiu nh6p hng cho n t hng @JJB* nu c th;
in r+ YC 22 &, phiu nh6p hng cho n t hng @JJBZ* ng79c 8Li th; in r+
YCh7+ c nh6p hng no cho @JJBZ.
DEC#ARE DDEM INT
SE#ECT DDEM = COUNT "*%
FROM PNHAP
WHERE SoDH = &D001&
IF DDEM H 0
PRINT N&CU& V CAST "DDEM AS CHAR"I%% V N&BW ph*@' (hQp h9( 5ho FR( FX1
h9( D001&
E#SE
PRINT N&ChYa 5U (hQp h9( (9o 5ho D001&

Z. TLo ()t bng t'n A#TT"[TW(p c cu trMc $ .\ 8iEu .]+ $o bng A#TT" ^ch_
8K P c)t U+ATu* TWnATu`. Q+u &R .Sng $/ng 8p aHbcT $it oLn ch7ng
tr;nh .dng 2+ t1ng ./ng .\ 8iEu trong bng A#TT"[TW(p $Hi iu -iEn ceu
8Enh b'n trong $/ng 8p -hi (Xi 8?n th]c hiEn ch_ 79c phfp 2+ ()t ./ng .\ 8iEu
trong bng A#TT"[TW(p. Trong -hi 2+ n'n thng bo r+ (n h;nh n)i .ung Y>5
2+ $6t t7Z g T'n $6t t7.
SE#ECT Ma-T'$ T2(-T' INTO -ATTU[T2\p
FROM -ATTU
SET NOCOUNT ON
DEC#ARE DMa-T' CHAR"Z%$ DT2(-T' -ARCHAR"100%
WHI#E E0ISTS " SE#ECT * FROM -ATTU[T2\p%
.EGIN
SE#ECT TOP 1 DMa-T'=Ma-T'$ DT2(-T'=T2(-T' FROM -ATTU[T2\p
DE#ETE -ATTU[T2\p WHERE DMa-T'=Ma-T'
PRINT N&EN ]Ua 8Q1 1Y& V DT2(-T'
END
SET NOCOUNT OFF
5. ciEt -' .+nh &ch cc n t hng trong bng @h:@H* b% &ung th'( c)t hin th
thi trong tu?n ^bjng ting $iEt` c<+ ngK t hng.
SE#ECT *$ Th^[T*@([-*<1 = CASE DATENAME"DW$Na!DH%
WHEN &S'()a!& THEN N&Ch_ NhQ1&
WHEN &Mo()a!& THEN N&Th^ Ha*&
WHEN &T'2B)a!& THEN N&Th^ .a&
WHEN &W2)(2B)a!& THEN N&Th^ TY&
WHEN &Th'=B)a!& THEN N&Th^ NO\&
WHEN &F=*)a!& THEN N&Th^ S7'&
WHEN &Sa1'=)a!& THEN N&Th^ .`!& END
FROM DONDH
a. ki( n gi 2ut c<+ cc hng h+ bn r+ trong thng JBlPJJm thWo cc nuK toc
&+u4
M phng gi( nu &, 879ng q r
M ki( 5 s nu &, 879ng tu r $ &, 879ng q BJ
M ki( BJ s nu &, 879ng t u BJ $ &, 879ng q u PJ
M ki( PJ s nu &, 879ng t PJ
UPDATE CTP0UAT
SET DG0'a1 = CASE
WHEN S#0'a1 b Z THEN DG0'a1
WHEN S#0'a1 H= Z AND S#0'a1 b 10 THEN DG0'a1 - DG0'a1 * 5/100
WHEN S#0'a1 H= 10 AND S#0'a1 b= P0 THEN DG0'a1 - DG0'a1 * 10/100
WHEN S#0'a1 H P0 THEN DG0'a1 - DG0'a1 * P0/100 END
WHERE SoP0 IN "SE#ECT SoP0 FROM P0UAT WHERE MONTH"Na!0'a1%=&01& AND
/EAR"Na!0'a1%=&P00c&%
IV. To c5c VIYZ @a!A
B. TLo $iWv c t'n $v[@h:@H[TongQc:h+p b+o gw( cc thng tin &+u4 &, t
hng* t%ng &, 879ng nh6p. AiWv nK 79c .dng th,ng -' t%ng &, 879ng nh6p
thWo n hng.
CREATE -IEW 8d[DONDH[To(S#Nhap
AS
SE#ECT DONDH.SoDH$ SUM"CTPNHAP.S#Nhap% AS To(S#Nhap
FROM PNHAP RIGHT JOIN DONDH ON PNHAP.SoDH=DONDH.SoDH #EFT
JOIN CTPNHAP ON PNHAP.SoPN= CTPNHAP.SoPN
GROUP ./ DONDH.SoDH
GO
P. TLo $iWv c t'n $v[@h:@H[TongQc@+t:h+p b+o gw( cc thng tin4 &, t
hng* t%ng &, 879ng t* t%ng &, 879ng nh6p. AiWv nK .dng th,ng -' nh\ng
n t hng no 5 79c nh6p hng ?K <.
CREATE -IEW 8d[DONDH[To(S#Da1Nhap
AS
SE#ECT DONDH.SoDH$ SUM "CTDONDH.S#Da1% AS To(S#Da1$
SUM "CTPNHAP.S#Nhap% AS To(S#Nhap
FROM CTDONDH #EFT JOIN DONDH ON CTDONDH.SoDH = DONDH.SoDH
#EFT JOIN PNHAP ON CTDONDH.SoDH = PNHAP.SoDH
#EFT JOIN CTPNHAP ON PNHAP.SoPN = CTPNHAP.SoPN AND
CTDONDH.Ma-T' = )Mo.CTPNHAP.Ma-T'
GROUP ./ DONDH.SoDH
GO
I. TLo $iWv c t'n $v[@h:@H[@+:h+p@u b+o gw( cc thng tin4 &, t hng*
thng bo. Trong c)t thng bo c P gi tr 8 =>5 nh6p <D nu n t hng
5 nh6p < hoc =Ch7+ nh6p <D nu n t hng ch7+ nh6p <.
CREATE -IEW 8d[DONDH[DaNhapD'
AS
SE#ECT CTDONDH.SoDH$ CASE WHEN SUM"CTPNHAP.S#Nhap% H=
SUM"CTDONDH.S#Da1% THEN N&EN (hQp F_& E#SE N&ChYa (hQp F_& END AS DaNhapD'
FROM CTDONDH #EFT JOIN
DONDH ON CTDONDH.SoDH = DONDH.SoDH #EFT JOIN
PNHAP ON CTDONDH.SoDH = PNHAP.SoDH #EFT JOIN
CTPNHAP ON CTDONDH.Ma-T' = CTPNHAP.Ma-T' AND PNHAP.SoPN
= CTPNHAP.SoPN
GROUP ./ CTDONDH.SoDH
GO
r. TLo $iWv c t'n $v[Tong:h+p b+o gw( cc thng tin4 nN( thng* (5 $6t t7* t%ng
&, 879ng nh6p. AiWv nK .dng th,ng -' &, 879ng nh6p c<+ cc $6t t7 trong
t1ng nN( thng t7ng ing ^ nN( thng c .Lng xxxxyUU`. ChM z4 -hng &R
.Sng bng twn -ho.
5. TLo $iWv c t'n $v[Tong!u+t b+o gw( cc thng tin4 nN( thng* (5 $6t t7* t%ng
&, 879ng 2ut. AiWv nK .dng th,ng -' &, 879ng 2ut c<+ cc $6t t7 trong t1ng
nN( thng t7ng ing ^ nN( thng c .Lng xxxxyUU`. ChM z4 -hng &R .Sng
bng twn -ho.
{. TLo $iWv b+o gw( cc thng tin4 &, n hng* :gK t hng* T%ng &, 879ng t .
AiWv nK .dng th,ng -' t%ng &, 879ng t hng thWo t1ng &, n hng trong
thng B nN( PJJm.
CREATE -IEW 8d[DONDH[To(S#Da1
AS
SE#ECT DONDH.SoDH$ Na!DH$ SUM"S#Da1%AS To(S#Da1
FROM DONDH INNER JOIN CTDONDH ON DONDH.SoDH=CTDONDH.SoDH
WHERE CON-ERT"CHAR"a%$Na!DH$11P%=&P00c01&
GROUP ./ DONDH.SoDH$ Na!DH
GO
m. TLo $iWv b+o gw( cc thng tin &+u4 Q, phiu nh6p* :gK nh6p* T%ng &, 879ng
nh6p. AiWv nK .dng th,ng -' t%ng &, 879ng nh6p hng thWo t1ng &, phiu
trong nN( ngoi.
CREATE -IEW 8d[PNHAP[To(S#Nhap
AS
SE#ECT PNHAP.SoPN$ Na!Nhap$ SUM"S#Nhap% AS To(S#Nhap
FROM PNHAP INNER JOIN CTPNHAP ON PNHAP.SoPN=CTPNHAP.SoPN
WHERE CON-ERT"CHAR"Z%$Na!Nhap$11P%=&P011&
GROUP ./ PNHAP.SoPN$ Na!Nhap
GO
V. To c5c thM tc :! t#9 ( Sto#C8 /#ocC8!#C ) @a!A
F. !eK .]ng th< tSc tVnh &, 879ng t hng $Hi t'n &pu.[@h:@H[TinhQc@+t gw( c P
th+( &, $o 8 4 Q, t hng $ (5 $6t t7* B th+( &, r+ 8 4 Q, 879ng t hng c<+ ()t $6t
t7 thWo ()t &, t hng.
CREATE PROCEDURE Bp')[DONDH[T*(hS#Da1 DSoDH CHAR"Z%$DMa-T' CHAR"Z%$
DS#Da1 INT OUTPUT
AS
DEC#ARE D+e INT
SE#ECT D+e = S#Da1
FROM CTDONDH
WHERE SoDH=DSoDH AND Ma-T'=DMa-T'
SET DS#Da1= D+e
GO
P. !eK .]ng th< tSc tVnh t%ng &, 879ng 5 nh6p hng $Hi t'n
&pu.[:H#[TinhTongQc:H+ng gw( P th+( &, $o 8 4 Q, t hng $ (5 $6t t7* B
th+( &, r+ 84 T%ng &, 879ng 5 nh6p hng c<+ ()t $6t t7 thWo ()t &, t hng.
CREATE PROCEDURE Bp')[PNHAP[T*(hTo(S#NHa( DSoDH CHAR"Z%$ DMa-T'
CHAR"Z%$ DTo(S#Nhap INT OUTPUT
AS
DEC#ARE D+e INT
SE#ECT D+e= SUM"S#Nhap%FROM CTPNHAP INNER JOIN PNHAP ON
CTPNHAP.SoPN=PNHAP.SoPN
WHERE SoDH=DSoDH AND Ma-T'=DMa-T'
SET DTo(S#Nhap = ISNU##"D+e$0%
GO
I. !eK .]ng th< tSc th'( (Hi .\ 8iEu $o bng A#TT" $Hi t'n &pu.[A#TT"[ThW( gw(
c r th+( &, $o chVnh 8 gi tr th'( (Hi cho cc c)t trong bng A#TT"4 (5 $6t t7* t'n
$6t t7* n $ tVnh* ph?n trN(. Trong c?n -i( tr+ cc rng bu)c .\ 8iEu phi h9p 8E
tr7Hc -hi th]c hiEn 8Enh b:QT|T b:Th th'( .\ 8iEu $o cc bng A#TT"4 U5 $6t t7
phi ch7+ c trong bng A#TT".
CREATE PROCEDURE Bp')[-ATTU[Th2\ DMa-T' CHAR"Z%$ DT2(-T'
-ARCHAR"100%$ DD-T*(h -ARCHAR"50%$DPha(T=a\ REA#
AS
IF E0ISTS "SE#ECT * FROM -ATTU WHERE Ma-T'=DMa-T'%
.EGIN
PRINT N&MN 8Q1 1Y (9! FN 5U =H +hK( 1hA\ FYT5&
RETURN
END
INSERT INTO -ATTU -A#UES "DMa-T'$ DT2(-T'$ DD-T*(h$ DPha(T=a\%
GO
r. !eK .]ng th< tSc 2+ ()t $6t t7 c trong bng A#TT" $Hi t'n &pu.[A#TT"[!o+ gw(
c ()t th+( &, $o chVnh 8 (5 $6t t7 c?n 2+. Trong c?n -i( tr+ rng bu)c .\ 8iEu
tr7Hc -hi th]c hiEn 8Enh @TcTTT 2+ .\ 8iEu trong bng A#TT"4
y U5 $6t t7 phi ch7+ c trong bng CT@h:@H
y U5 $6t t7 phi ch7+ c trong bng CT:H#
y U5 $6t t7 phi ch7+ c trong bng CT!"#T
y U5 $6t t7 phi ch7+ c trong bng Th:pHh
CREATE PROCEDURE Bp')[-ATTU[0oa DMa-T' CHAR"Z%
AS
IF E0ISTS " SE#ECT * FROM CTDONDH WHERE Ma-T'=DMa-T'%
.EGIN
PRINT N&MN 8Q1 1Y (9! FN 5U 1=o( M`( CTDONDH =H +hK( ]Ua
FYT5&
RETURN
END
IF E0ISTS " SE#ECT * FROM CTPNHAP WHERE Ma-T'=DMa-T'%
.EGIN
PRINT N&MN 8Q1 1Y (9! FN 5U 1=o( M`( CTPNHAP =H +hK( ]Ua
FYT5&
RETURN
END
IF E0ISTS " SE#ECT * FROM CTP0UAT WHERE Ma-T'=DMa-T'%
.EGIN
PRINT N&MN 8Q1 1Y (9! FN 5U 1=o( M`( CTP0UAT =H +hK( ]Ua
FYT5&
RETURN
END
IF E0ISTS " SE#ECT * FROM TON+HO WHERE Ma-T'=DMa-T'%
.EGIN
PRINT N&MN 8Q1 1Y (9! FN 5U 1=o( M`( TON+HO =H +hK( ]Ua
FYT5&
RETURN
END
DE#ETE -ATTU WHERE Ma-T'=DMa-T'
GO
5. !eK .]ng th< tuc &R+ %i $6t t7 trong bng A#TT" $Hi t'n &up.[A#TT"[Qu+ gw( c r
th+( &, $o chVnh 8 gi tr c?n th+K %i c<+ cc c)t trong bng A#TT" ^ tr1 c)t (5 $6t
t7`4 (5 $6t t7 * t'n $6t t7* n $ tVnh $ ph?n trN(. Trong th< tSc ch_ c?n th]c hiEn 8Enh
"@#TT QTT c6p nh6t .\ 8iEu $o bng A#TT" $Hi cc gi tr t7ng ing.
CREATE PROCEDURE B'p)[-ATTU[S'a DMa-T' CHAR"Z%$ DT2(-T'
-ARCHAR"100%=NU##$ DD-T*(h -ARCHAR"50%=NU##$DPha(T=a\ REA#=NU##
AS
IF NOT E0ISTS "SE#ECT * FROM -ATTU WHERE Ma-T'= DMa-T'%
.EGIN
PRINT N&MN 8Q1 1Y fhK( 1;( 1g* ==H +hK( B3a FYT5&
RETURN
END
UPDATE -ATTU SET T2(-T' = ISNU## "DT2(-T'$ T2(-T'%$
D-T*(h = ISNU## "DD-T*(h$ D-T*(h%$
Pha(T=a\ = ISNU## "DPha(T=a\$ Pha(T=a\%
WHERE Ma-T'= DMa-T'
GO
{. !eK .]ng th< tSc 8iEt -' cc c)t .\ 8iEu trong bng Th:pHh c th th'( c)t TWnATu
trong bng A#TT" $Hi t'n &pu.[Th:pHh[}C+oTonpho gw( c ()t th+( &, $o 8 4
:N( thng (u,n 8~c .\ 8iEu.
CREATE PROCEDURE Bp')[TON+HO[.CaoTo(+ho DNa\Tha( CHAR"a%
AS
SE#ECT a.Ma-T'$T2(-T'$ Na\Tha( $ S#Da'$ To(S#N$ To(S#0$ S#C'o*
FROM TON+HO a INNER JOIN -ATTU M ON a.Ma-T'=M.Ma-T'
WHERE Na\Tha(= DNa\Tha(
GO
m. !eK .]ng th< tSc 8iEt -' cc c)t .\ 8iEu trong P bng .\ 8iEu !"#T $ CT!"#T c
th hiEn th'( c)t TWnATu trong bng A#TT" $Hi t'n 8 &pu.[!"#T[}C+o!u+t gw( c
()t th+( &, $o 8 4 Q, phiu 2ut (u,n 8~c .\ 8iEu c gi tr (c nh 8 :"cc. TuK
nhi'n nu 8Mc g~i th]c hiEn th< tSc ( -hng truKn gi tr &, phiu 2ut $o th; 2W( nh7
-hng 8~c g; c* -hi th< tSc & 8iEt -' tt c cc phiu 2ut +ng c trong bng !"#T.
CREATE PROCEDURE Bp')[P0UAT[.CaoP0'a1 DSoP0 CHAR"Z% = NU##
AS
IF DSoP0 IS NU##
SE#ECT a.SoP0$a.Ma-T'$T2(-T'$S#0'a1$DG0'a1$Na!0'a1$ T2(+H
FROM CTP0UAT a INNER JOIN -ATTU M ON a.Ma-T'=M.Ma-T' INNER
JOIN P0UAT 5 ON a.SoP0=5.SoP0
E#SE
SE#ECT a.SoP0$a.Ma-T'$T2(-T'$S#0'a1$DG0'a1$Na!0'a1$ T2(+H
FROM CTP0UAT a INNER JOIN -ATTU M ON a.Ma-T'=M.Ma-T' INNER
JOIN P0UAT 5 ON a.SoP0=5.SoP0
WHERE a.SoP0=DSoP0
GO
8. !eK .]ng th< tSc tVnh t%ng gi tr hng 2ut $Hi P th+( &, $o 8 thng $ nN(*
B th+( &, r+ 8 t%ng gi tr hng 2ut c<+ thng $ nN( .
CREATE PROCEDURE Bp')[P0UAT[To(DG0'a1 DTha(0'a1 CHAR"P%$ DNa\0'a1
CHAR"Z%$ DTo(DG0'a1 MONE/ OUTPUT
AS
DEC#ARE D+e MONE/
SE#ECT D+e=SUM"DG0'a1%
FROM CTP0UAT INNER JOIN P0UAT ON CTP0UAT.SoP0=P0UAT.SoP0
WHERE MONTH"Na!0'a1%=DTha(0'a1 AND /EAR"Na!0'a1%=DNa\0'a1
SET DTo(DG0'a1 = ISNU##"D+e$0%
GO
3. TLo th< tSc th'( (Hi .\ 8iEu $o bng :H# . Trong c?n -i( tr+ .\ 8iEu
h9p 8E tr7Hc -hi th'(4
M Q, phiu nh6p phi 8 .uK nht
M Q, n hng phi c trong bng @h:@H
CREATE PROCEDURE Bp')[PNHAP[Th2\ DSoPN CHAR"Z%$DNa!Nhap DATETIME $
DSoDH CHAR"Z%
AS
IF E0ISTS "SE#ECT * FROM PNHAP WHERE SoPN=DSoPN%
.EGIN
PRINT N&SW ph*@' (hQp FN 1;( 1g* ==H +hK( 1hh 1hA\ FYT5&
RETURN
END
IF NOT E0ISTS "SE#ECT * FROM DONDH WHERE SoDH=DSoDH%
.EGIN
PRINT N&SW FR( h9( fhK( 5U 1=o( M`( DONDH ==H +hK(
1hh 1hA\ FYT5&
RETURN
END
INSERT INTO PNHAP -A#UES "DSoPN$DNa!Nhap$DSoDH%
GO
VI. To c5c h&m ([!nction) @a!A
B. n[Tong:h+pTh+ng^:+(Th+ng* U+ATu` tr $ t%ng &, 879ng 5 nh6p trong
thng c<+ $6t t7. ChM z4 :+(Th+ng c .Lng xxxxUU.
CREATE FUNCTION F([To(NhapTha( "DNa\Tha( CHAR"a%$ DMa-T' CHAR"Z%%
RETURNS INT
.EGIN
DEC#ARE D+e INT
SE#ECT D+e= SUM"S#Nhap%
FROM CTPNHAP INNER JOIN PNHAP ON CTPNHAP.SoPN=PNHAP.SoPN
WHERE Ma-T'=DMa-T' AND
CON-ERT"CHAR"a%$Na!Nhap$11P%=DNa\Tha(
RETURN ISNU##"D+e$0%
END
P. n[Tong!u+tTh+ng ^:+(Th+ng* U+ATu` tr $ t%ng &, 879ng 5 2ut trong
thng c<+ $6t t7.
CREATE FUNCTION F([To(0'a1Tha( "DNa\Tha( CHAR"a%$ DMa-T' CHAR"Z%%
RETURNS INT
.EGIN
DEC#ARE D+e INT
SE#ECT D+e=SUM "S#0'a1%
FROM CTP0UAT INNER JOIN P0UAT ON CTP0UAT.SoP0=P0UAT.SoP0
WHERE Ma-T'=DMa-T' AND
CON-ERT"CHAR"a%$Na!0'a1$11P%=DNa\Tha(
RETURN ISNU##"D+e$0%
END
I. n[Tong:h+p ^Qo@H* U+ATu` tr $ t%ng &, 879ng 5 nh6p c<+ $6t t7 thWo
&, t hng
CREATE FUNCTION F([To(Nhap " DSoDH CHAR"Z%$ DMa-T' CHAR"Z%% RETURNS
INT
.EGIN
DEC#ARE DTo( INT
SE#ECT DTo(=SUM"S#Nhap%
FROM PNHAP a INNER JOIN CTPNHAP M ON a.SoPN=M.SoPN
WHERE SoDH=DSoDH AND Ma-T'=DMa-T'
RETURN ISNU##"DTo($0%
END
r. QR .Sng h( n[Tong:h+p 5 tLo $it h( n[Con:h+p ^Qo@H*
U+ATu` tr $ &, 879ng c/n phi nh6p c<+ (5 $6t t7 thWo &, t hng
CREATE FUNCTION F([Co(Nhap " DSoDH CHAR"Z%$ DMa-T' CHAR"Z%% RETURNS
INT
.EGIN
DEC#ARE D+e INT
SE#ECT D+e= SUM"S#Da1% - D.O.F([To(Nhap "DSoDH$ DMa-T'%
FROM CTDONDH
WHERE SoDH=DSoDH AND Ma-T'=DMa-T'
RETURN ISNU##"D+e$0%
END
5. n[TonCuoi ^U+ATu* :+(Th+ng`tr $ &, 879ng twn cu,i - c<+ $6t t7 thWo
nN( thng.
CREATE FUNCTION F([To(C'o* "DMa-T' CHAR"Z%$ DNa\Tha( CHAR"a%% RETURNS
INT
.EGIN
DEC#ARE D+e INT
SE#ECT D+e = S#C'o*
FROM TON+HO
WHERE Ma-T'=DMa-T' AND Na\Tha(=DNa\Tha(
RETURN ISNU##"D+e$0%
END
{. QR .Sng h( n[Con:h+p 5 tLo $it h( n[@Q[A+tTuCon:h+p ^Qo@H`
8iEt -' Qo@H* U+ATu* TWnATu* QcCon:h+p c<+ cc $6t t7 ch7+ nh6p <.
CREATE FUNCTION F([DS[-a1T'Co(Nhap "DSoDH CHAR"Z%%
RETURNS DDS-T TA.#E
"
SoDH CHAR"Z%$
Ma-T' CHAR"Z%$
T2(-T' -ARCHAR"100%$
S#Co(Nhap INT
%
AS
.EGIN
INSERT INTO DDS-T
SE#ECT SoDH$ a.Ma-T'$ T2(-T'$ )Mo.F([Co(Nhap"SoDH$a.Ma-T'%
FROM CTDONDH a INNER JOIN -ATTU M ON a.Ma-T'=M.Ma-T'
WHERE SoDH=DSoDH
DE#ETE DDS-T WHERE S#Co(Nhap b = 0
RETURN
END
m. n[CongTh+ng^:+(Th+ng* n` tr $ chuXi nN( thng (Hi c c)ng i n
thng ^n 8 ()t &, nguK'n`. ChM z4 :+(Th+ng 8 chuXi c .Lng xxxxUU.
CREATE FUNCTION F([Co(Tha( " DNa\Tha( CHAR"a%$ D( INT% RETURNS
CHAR"a%
.EGIN
DEC#ARE D+e CHAR"a%$ DNa! DATETIME
SET DNa!= RIGHT "DNa\Tha($P%V &/& V&1&V &/&V #EFT"DNa\Tha($Z%
SET DNa! = DATEADD"\\$D($DNa!%
SET D+e = CON-ERT"CHAR"a%$DNa!$11P%
RETURN ISNU##"D+e$0%
END
8. QR .Sng h( n[TonCuoi $ n[CongTh+ng 5 tLo $it h(
n[@Q[Tonpho[cWch[BTh+ng ^:+(Th+ng` 8iEt -' cc thng tin trong bng twn
-ho c<+ cc $6t t7 ( thng tin twn ?u - c<+ nN( thng truKn $o -hng bjng
thng tin twn cu,i - c<+ nN( thng tr7Hc.
CREATE FUNCTION F([DS[To(+ho[#25h[1Tha( "DNa\Tha( CHAR"a%%
RETURNS DDST+#25h1Tha( TA.#E
"
Ma-T' CHAR"Z%$
S#Da' INT$
S#C'o* INT
%
.EGIN
DEC#ARE DNa\Tha([T='o5 CHAR"a%
SET DNa\Tha([T='o5 = )Mo.F([Co(Tha("DNa\Tha($-1%
INSERT INTO DDST+#25h1Tha(
SE#ECT Ma-T'$ S#Da'$ )Mo.F([To(C'o*"DNa\Tha([T='o5$Ma-T'%
FROM TON+HO
WHERE Na\Tha(=DNa\Tha(
DE#ETE DDST+#25h1Tha( WHERE S#Da'=S#C'o*
RETURN
END
3. H( tr $ ()t bng gw( cc thng tin4 Qo:* :g+K:h+p* T%ng tin nhep ^ $Hi
th+( &, truKn $o 8 Qo:`
CREATE FUNCTION F([DSPNHAP "DSoPN CHAR"Z%% RETURNS TA.#E
AS
RETURN" SE#ECT a.SoPN$ Na!Nhap$ SUM"S#Nhap*DGNhap%AS To(T*2(Nhap
FROM PNHAP a INNER JOIN CTPNHAP M ON a.SoPN=M.SoPN WHERE a.SoPN=DSoPN
GROUP ./ a.SoPN$ Na!Nhap%
GO
BJ. Ait h( tr $ ()t bng gw( cc thng tin4 Qo!* :g+K!u+t* TongTiWn!u+t ^ $Hi
th+( &, truKn $o 8 Qo!`
CREATE FUNCTION F([DSP0UAT "DSoP0 CHAR"Z%% RETURNS TA.#E
AS
RETURN" SE#ECT a.SoP0$ Na!0'a1$ SUM"S#0'a1*DG0'a1%AS To(T*2(0'a1
FROM P0UAT a INNER JOIN CTP0UAT M ON a.SoP0=M.SoP0 WHERE a.SoP0=DSoP0
GROUP ./ a.SoP0$ Na!0'a1%
GO
VII. To c5c T#iggC# @a!A
B. !eK .]ng TriggWr -hi th'( (Hi .\ 8iEu $o bng :H# $Hi t'n
tg[:H#[ThW(. Trong c?n -i( tr+ cc rng bu)c .\ 8iEu phi h9p 8E.
M Q, t hng phi c trong bng @h:@H.
M :gK nh6p hng phi &+u ngK t hng.
CREATE TRIGGER 1[PNHAP[Th2\ ON PNHAP
FOR INSERT
AS
DEC#ARE DSoDH CHAR"Z%$ DNa!Nhap DATETIME
SE#ECT DSoDH=SoDH$ DNa!Nhap=Na!Nhap FROM INSERTED
IF NOT E0ISTS "SE#ECT * FROM DONDH WHERE SoDH=DSoDH%
.EGIN
RAISERROR "&SW FR( h9( (9! 5hYa 5U 1=o( M`( DONDH (A( fhK(
1hA\ FYT5&$1a$1%
RO##.AC+ TRAN
RETURN
END
DEC#ARE DNa!DH DATETIME
SE#ECT DNa!DH=Na!DH FROM DONDH WHERE SoDH=DSoDH
IF DNa!Nhap b DNa!DH
.EGIN
RAISERROR "&N9! (hQp h9( ph`* Ba' (9! FX1 h9(&$1a$1%
RO##.AC+ TRAN
RETURN
END
GO
P. !eK .]ng triggWr -hi th'( (Hi .\ 8iEu $o bng CT:H# $Hi t'n
tg[CT:H#[ThW( . Trong c?n -i( tr+ cc rng bu)c .\ 8iEu phi h9p 8E4
M Q, 879ng nh6p hng qu ^Q, 879ng t T%ng &, 879ng 5 nh6p $o tr7Hc `
CREATE TRIGGER 1[CTPNHAP[Th2\ ON CTPNHAP
FOR INSERT
AS
DEC#ARE DSoDH CHAR"Z%$ DMa-T' CHAR"Z%$DS#Da1 INT$ DSoPN CHAR"Z%$
DS#Nhap INT$ DTo(Nhap INT
SE#ECT DSoDH=PNHAP.SoDH$
DSoPN=INSERTED.SoPN$DMa-T'=INSERTED.Ma-T'$DS#Nhap=S#Nhap FROM
INSERTED INNER JOIN PNHAP ON INSERTED.SoPN=PNHAP.SoPN
SE#ECT DTo(Nhap=SUM"S#Nhap% FROM CTPNHAP INNER JOIN PNHAP ON
CTPNHAP.SoPN=PNHAP.SoPN WHERE PNHAP.SoDH=DSoDH AND
CTPNHAP.Ma-T'=DMa-T' AND DSoPN NOT IN "SE#ECT CTPNHAP.SoPN FROM
CTPNHAP INNER JOIN INSERTED ON CTPNHAP.SoPNbHINSERTED.SoPN%
SE#ECT DS#Da1=S#Da1 FROM CTDONDH WHERE SoDH=DSoDH AND
Ma-T'=DMa-T'
IF DS#NhapHDS#Da1-DTo(Nhap
.EGIN
RAISERROR "&.g( FN (hQp i'7 (h*S' h9(&$1a$1%
RO##.AC+ TRAN
RETURN
END
GO
I. !eK .]ng TriggWr -hi 2+ .\ 8iEu trong bng !"#T $Hi t'n tg[!"#T[!+
.Trong c?n th]c hiEn cc hnh )ng4
M Th]c hiEn t] )ng 2+ cc ./ng .\ 8iEu 8i'n nu+n b'n bng CT!"#T
CREATE TRIGGER 1[P0UAT[0oa ON P0UAT
FOR DE#ETE
AS
DEC#ARE DSoP0 CHAR"Z%$ DNa!0'a1 DATETIME$ DT2(+H -ARCHAR"100%
SE#ECT DSoP0=SoP0$ DNa!0'a1=Na!0'a1$ DT2(+H=T2(+H FROM
DE#ETED
DE#ETE CTP0UAT WHERE CTP0UAT.SoP0=DSoP0
GO
Z.

You might also like