You are on page 1of 24
Bai Bién soan: GV Lé CI udin - 0982080380, QUAN LY BAN HANG M6 Hinh Co So Dé Ligu : Danh myc Vat ty (VATTU) ren opt Ynghia kigw D6 rome | Mavtn | Ma vive char | 4 TenVTu | Téa view Varchar | 100 Detiah | Davi ua vucnar [10 | Phantram | Ty le phdnteim Real anh myc Nha cung cp (NHAC) Tenedt YY nghia | Kié Do rdng MaNhaCe | Ma nha cungep car | 3 TenNtaCe_| én hd cungcdp VarChar | 100 Dac | Diachi Varchar | 200 Dealboal | Digathoai Varchar | 20 Bon dat hang (DONDH) ‘Tenebt ¥ ghia wiéu | Dé rong | sen S6don dH hang oar 4 Neaybh | NsdydSt his. by DateTiane MaNhaCe | Ma nk cung ip ‘Char 3 Chi tit Bon ast hang (CTDONDH) Ten eot ¥ mga Kida | D6 réng ‘Sobh SEdsndH hing Guar 4 Mavi | Ma vite Ghar 4 Sibat Su hang Phigu nhép hang (PNHAP) ‘Ten eot $F nghia Kida | bo rong | Sora S6 pigs ohap hg, Char 4 NeayNiap_| Nady abgphing Duietine ‘Soh S6ddsn i hing Char a ‘Chi tiét nhap hang (CTPNHAP) | Ten ept Vnghia kid | DO rome ‘Soka Séphigi abpheing Char 4 Mavty | Ma viene Char 4 [snap | se'uyg asp hing lat DaNthap | Dongi nip hing Money Phigu xuat nang (PXUAT) Tend ¥ nia kigy__| D6 rong | or S6 igi xu Char 4 NeayXuat | Nedy sui hing Driers Tenkh ‘Ten khich hing Varchar | 100 Bai ‘dp SQL Server Bign sogn: GV Lé © sudin - 0982080380 (Chi tiét xuat hang (CTPXUAT) ‘Tencat ¥ ghia Kiéu | Do rong ‘Soy So phigu xust Char 4 Mav Ma vate Chae 4 ‘SXuat So heyng xu ing iat DgXuat___| Don gid wut hang Money ‘Tén kno (TONKHO) “Teneot ¥ ghia kidu__| 6 rong ‘Namthang | Nai thing Char 6 MaVtu | Mavitne Char 4 SLDwu | Sotugne wn du kd im “TongSLN | Téag s6lugog nhp wong ky im TongStX | 1 éng of tng wut rong 4 Tat SLCuoi___[ SSgng wncudl Ky Ine M6 Hinh Lién Két Thue Thé : cIPXUAT oe | Paar mara Incarauat svat nae Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. 1, Thiét Lap Co Sé Dit Ligu : 1, Tgo CSDL Ban Hang CREATE DATABASE BanHang ON PRIMARY ( ) janHang_Log, \Program Files\Microsoft SQL Server\ MSSOLWData\BanHang. Log ld, MANSIZE FILEGROWTH ) Go USE BanHang 2. Tao Bang Vat Tw CREATE TABLE VATTU C ‘MaVTu CHAR(4), TenVIu VARCHAR(100), DVTinh VARCHAR(10) DEFAULT ", PhanTram REAL CONSTRAINT PRK_VatTu_MaVTu PRIMARY KEY(MaVTu), CONSTRAINT UNQ_VatTu_TenVTu UNIQUE(TenVTu), CONSTRAINT CHK VatTu_PhanTram CHECK(PhanTram BETWEEN 0 AND 100) ) 3. Tao Bang Nha Cung Cap CREATE TABLE NHACC C MaNhaCC CHAR (3), TenNhaCC VARCHAR(I00), DiaChi VARCHAR (200), DienThoai__ VARCHAR(20) DEFAULT ‘Chua co" CONSTRAINT PRK_NhaCC_MaNhaCC PRIMARY | CONSTRAINT UN Y¥(MaNhaCC), MhaCC_MaNhaCC_TenNhaCC UNIQUE(TenNhaCO) ) 4. Tao Bang Don Djt Hang CREATE TABLE DONDH ¢ Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. SoDH CHAR(4), MaNhaCC — CHAR(G3), NeayDH DATETIME DEFAULT GETDATEQ, CONSTRAINT PRK_DonDH_SoDH PRIMARY KE ) 5. Tao Bang Chi Tiét Don D§t Hang CREATE TABLE CTDONDH ( SoDH CHAR(4), MaVTu CHAR(4), ‘SLDat INT CONSTRAINT PRK_CTDONDH_SoDH_MaVTu PRIMARY KEY(SoDH,MaVTu), CONSTRAINT CHK_CTDONDH_SLDat CHECK(SLDat > 9) ) 6. Tao Bang Phiéu Nhap CREATE TABLE PNHAP C SoPN CHARYY, SoDH CHAR(4), NeayNhap DATETIME CONSTRAINT PRK_PNHAP_SoPN PRIMARY KEY(S0PN) ) 7. Tao Bang Chi Tiét Phiéu Nh3p CREATE TABLE CTPNHAP ¢ SoPN CHAR(4), MaVTu CHAR(4), SLNhap INT, DGNhap MONEY CONSTRAINT PRK_CTPNHAP_SoPN_MaVTu PRIMARY KEY(SoPN,MaVTu), CONSTRAINT CHK_CTPNHAP_SLNhap CHECK(SLNhap > 0 AND DGNhap > 0) ) 8. Tao Bang Phiéu Xudt CREATE TABLE PXUAT ( SoPX CHAR(4), NgayXiuat DATETIME, TenKH VARCHAR(100) CONSTRAINT PRK_PXUAT_SoPX PRIMARY KEY(SoPX) ) 9. Tao Bang Chi Tiét Phiéu Xuat CREATE TABLE CTPXUAT C SoPX CHAR(), Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. Ma¥Tu CHAR(4), SLXuat INT, DGXuat_ MONEY CONSTRAINT PRK_CTPXUAT_SoPX_MaVTu PRIMARY KEY(SoPX, MaVTw), CONSTRAINT CHK_CTPXUAT.SLXuat_DGXuat CHECK(SLXuat > 0 AND DGXuat > 0) ) 10. Tao Bang Tan Kho CREATE TABLE TONKHO C NamThang CHAR(6), MaVTu CHAR(4), SLDaw INT DEFAULT 0, TongSLN INT DEFAULT, TongSLX INT DI LCuoi AS. PRAINT PRK TONKHO NamThang MaW’Tu PRIMARY KEY(NamThang, MaVT), CONSTRAINT CHK_TONKHO SLDaw TongSLN TongSLX CHECK(SLDau >= 0 AND TongSLN >= 0 AND TongSLX >= 0) ) 11. Tao Lién Két Gitta Cac Bang Dit Ligu ALTER TABLE DONDH ADD CONSTRAINT FRK_DonDH_NhaCC_MaNhaCC ‘OREIGN KEY (MaNhaCC) REFERENCES NhaCC(MaNhaCO) ALTER TABLE CTDONDH ADD CONSTRAINT FRK_CTDONDH_VATTU_MaVTu FOREIGN KEY (MaVTu) REFERENCES VATTU(MaVTu) ALTER TABLE CTDONDH ADD CONSTRAINT FRK_CTDONDH_DONDH_SoDH FOREIGN KEY (SoDH) REFERENCES DONDH(SoDH) ALTER TABLE PNHAP_—_ ADD CONSTRAINT FRK_PNhap_DonDH_SoDH FOREIGN KEY (SoDH) REFERENCES DONDH(SoDH) ALTER TABLE CTPNHAP ADD CONSTRAINT FRK_CTPNHAP_VATTU_Ma¥Tu FOREIGN KEY (MaVTu) REFERENCES VATTU(MaVTu) ALTER TABLE CTPNHAP ADD CONSTRAINT FRK_CTPNHAP_PNHAP_SoPN FOREIGN KEY (SoPN) REFERENCES PNHAP(SoPN) TABLE CTPXUAT ADD CONSTRAINT FRK_CTPXUAT_VATTU_MaVTu FOREIGN KEY(MaVTu) REFERENCES VATTU(MaVTu) ALTER TABLE CTPXUAT ADD CONSTRAINT FRK_CTPXUAT PXUAT_SoPX FOREIGN KEY(SoP) eRERENCES PXUAT(SoPX) ALTER TABLE TONKHO ADD CONSTRAINT FRK_TONKHO_VATTU_MaVTu FOREIGN KEY(MaVTu) REFERENCES VATTU(MaVTu) Go II, Chen Dit Ligu Vao Céc Bang : 1. Chén bang Nha Cung CAp INSERT INTO NHACC (MaNhaCC, TenNhaCC,DiaChi,DienThoai) VALUES ('CO1',Bui Tien Truong','‘Xuan La, Tay Ho, Ha Noi''0989995221') INSERT INTO NHACC (MaNhaCC: TenNhaCC, DiaChi,DienThoai) VALUES C02" Nguyen Thi Thw’,'Quan La, Tay Ho, Ha Noi’,'979012300') Ludin - 0982080380 Bai Tap SQL Server Bign soan: GV Lé CI INSERT INTO NHACC (MaNhaCC, TenNhaCC, DiaChi,DienThoai) VALUES ('C03",‘Ngo Thanh Tung',‘Kim Lien, Dong Da’,'0988098591') INSERT INTO NHACC (MaNhaCC, TenNhaCC, DiaChi,DienThoai) VALUES ('C04" ‘Bui Tien Lap','Ha Noi’ 0904255934’) INSERT INTO NHACC (MaNhaCC, TenNhaCC, DiaChi,DienThoai) VALUES ('C05''Hong That Cong’'Ha Noi’ ehua co’) INSERT INTO NHACC (MaNhaCC, TenNhaCC, DiaChi, DienThoai) VALUES ('C07''Bui Duc Kien''To 11, Cum 2, Xuan La’’04375300 2. Chan bang Vat Tur SERT INTO VATTU (Mal Tu TenTu,DVTinh Phan Tram) VALLES (DDOI'/Dau DVD Hitacht I da! 'Bo! 40) \SERT INTO VATTU (Ma¥Tu Ten Tu,DYTinh Phan Tram) VALUES DDI2‘Dau DVD Hitacht 3 da! ’Bo' 40) VSERT INTO VATTU (MaV Ti Ten) Tu, DV Tinh PhanTram) VALUES (LIS. tanh Sanyo 180 lt''Cal25) SERT INTO VATTU (Mal Tu Ten¥Tu DVTinh Phan Tram) VALUES (7L9 ‘Ti lanh Sanyo 90 "Ca 20) SERT INTO VATTU (Mal Tu TenTu,DVTinh Phan Tram) VALUES (TV141"Fvi Sony 14 inches "Ca 5) SERT INTO VATTU (MaY Tu Ten¥Tu.DVTinh PhantTram) VALUES (TV21' "Toi Sony 21 inches’ "Cat 10) SERT INTO VATTU (Mal Tu Ten¥Tu,DVTinh Phan Tram) VALUES (TV29:"Tsi Sony 29 inches Ca 10) SERT INTO VATTU (Ma Tu TenTu,DVTinh Phan Tram) VALUES (VDOI-Date VCD Sony I da!'Bo'30) SERT INTO VATTU (Ma Tu Ten¥Tu,DVTinh PhantTram) VALUES (‘DO ‘Date VCD Sony 3 la! 'Bo"30) 3. Chén bing Don D§t Hang INSERT INTO DONDH(SoDH, MaNhaCC,NgayDH) VALUES ('DOO1''C03',01/15/2002) INSERT INTO DONDH(SoDH, MaNhaCC,NgayDH) VALUES (‘D002','COI’,01/30/2002') INSERT INTO DONDH(SoDH, MaNhaCC.NgayDH) VALUES ('D003','C02,'02/10/2002') INSERT INTO DONDH(SoDH, MaNhaCC,NgayDH) VALUES (D004''CO5',02/17/2002) INSERT INTO DONDH(SoDH, MaNhaCC,NgayDH) VALUES D005" C02 03/01/2002) INSERT INTO DONDH(SoDH, MaNhaCC.NgayDH) VALUES ('D006','C05', 03/12/2002") 4. Chén bang Phiéu Nhap INSERT INTO PNHAP(SoPN,SoDH,NeayNhap) VALUES (NOO1' D001'01/17/2002) INSERT INTO PNHAP(SoPN,SoDH.NgayNhap) VALUES ('N002' D001", ‘01/20/2002') INSERT INTO PNHAP(SoPN,SoDH.NgayNhap) VALUES ('N003''D002",'01/31/2002') INSERT INTO PNHAP(SoPN.SoDH.NeayNhap) VALUES ('NO04' "D003" 02/15/2002') 5. Chan bing Chi Tiét Don Dit Hang INSERT INTO CTDONDH(SoDH, MaVTu,SLDat) VALUES(‘DOO1 ''‘DDO1',10) RT INTO CTDONDH(SoDH, MaVTu,SLDat) VALUES(‘DOOI' ‘DDO2'.15) INSERT INTO CTDONDH(SoDH, MaVTu,SL Dat) VALUES(‘D002''VD02',30) INSERT INTO CTDONDH(SoDH, MaVTu,SLDat) VALUES(‘D003','TV14'10) INSERT INTO CTDONDH(SoDH, Ma VTu,SLDat) VALUES(‘D003','TV29' 20) INSERT INTO CTDONDH{(SoDH, MaVTu,SLDat) VALUES(‘D004''TL90',10) RT INTO CTDONDH(SoDH, MaVTu,SLDat) VALUES('DOOS''TV14' 10) INSERT INTO CTDONDH(SoDH, MaVTu,SL Dat) VALUES(D005"°TV29" 20) INSERT INTO CTDONDH(SoDH, MaVTu,SLDat) VALUES(‘D006''TV14'10) INSERT INTO CTDONDH(SoDH, MaVTu,SLDat) VALUES(‘D006 ''TV29',20) INSERT INTO CTDONDH(SoDH, MaVTu,SLDat) VALUES(DO005'VD01',20) 6. Chén bang Chi Tiét Phiéu Nhap INSERT INTO CTPNHAP(SoPN, MaVTu,SLNhap,DGNhap) VALUES(N001",‘DDO!’,8,2500000) INSERT INTO CTPNHAP(SoPN, MaVTu,SLNhap,DGNhap) VALUES(NOO1"DD02’ 10,3500000) INSERT INTO CTPNIIAP(SoPN, MaVTu,SLNhap, DGNhap) VALUES(N002:, DDO 2,2500000) Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. INSERT INTO CTPNHAP(S0P LNhap, DGNhap) VALUES(NO02' DDO2’ 5, 3500000) INSERT INTO CTPNHAP(SoPN, MaVTu,SLNhap, DGNhap) VALUES(NO03*,'VD02',30,2500000) INSERT INTO CTPNHAP(SoPN, MaVTu,SLNhap.DGNhap) VALUES(NO04',TV14%,5,2500000) INSERT INTO CTPNHAP (SoPN, MaVTu,SLNhap,DGNhap) VALUES(N004','TV29",12,3500000) 7. Chén bang Phiéu Xuat INSERT INTO PXUATISoPX,Ngay Nua, TenK Hp VALUES(XOOI,01/17/2002" Duong Minh Chast) INSERT INTO PXUAT(SoPX, NgayXuat, TenKH) VALUES(X002','01/25/2002', Nguyen Kim Dung’) INSERT INTO PXUAT(SoPX, NgayXuat, TenKH) VALUES(X003', 01/31/2002, ‘Nguyen Tien Dung’) 8. Chén bang Chi Tiét Phiéu Xuat INSERT INTO CTPXUAT(SoPX, MaVTu,SL.Xwat, DGXwat) VALUES(X001'/DDOT’,2, 3500000) INSERT INTO CTPXUAT(S0PX, MaVTu,SLXwat, DGXuat) VALUES(X002; DOI’, 13500000) INSERT INTO CTPXUAT(SoPX, MaVTu,SLXuat, DGXwat) VALUES(X02!DDO2",5, 4900000) INSERT INTO CTPXUAT(SoPX, MaVTu,SLXuat, DGXuat) VALUES(X003', DOI’, 33500000) INSERT INTO CTPXUAT(SoPX, MaVTu, SLXuat, DGXuat) VALUES(X003,‘DDO2’,2,4900000) INSERT INTO CTPXUAT(SoPX, MaVTu,SLXuat, DGXuat) VALUES(X03','VDO2 10, 3250000) 9. Chén bang Tén Kho INSERT INTO TONKHO (Nam Thang Ma¥ Tu SLDau,TongSLN,TongSLX) VALUES(200201"DDO'0.19,5) INSERT INTO TONKIO(Na Thang. MaY Tu SLDa TongSLN, TongSLX) VALUES(200201"DD02 0.15.7) INSERT INTO TONKHO(Na Thang. MaVTu SLDans TongSLN TongSLX) VALUES(200201"VD029, 30,10) SERT INTO TONKHO(Nam Thang, MaY Tu SLDate TongSIN, TongSLX) VALUES/200202" DDO 49,9) $ERT INTO TONKHO(Nam Thang MaVTu SLDas, TongSLN, Tongs1X) VALUES(20020%.’DD12°8.1.9) INSERT INTO TONKIO(Nam Thang. MaY Tu SLDan TongSLN, FongSLX) VALUES(2002022'VD0229,0.9) INSERT INTO TONKHO|Nam Thang Ma¥ Ti SLDat, TongSLN.TongSLX) VALUES(209202.°TV14'5,9.9) INSERT INTO TONKO(Nam Thang. MaY Tu SLDan TongSLN, FongSLX) VALUES(200202'TV29, 12.0.9) I], Bai Tap VIEW : 1. Tao view vw_DMVT gim (MaVTu va TenVTu) ding dé ligt ké danh sich cae vit tu hign c6 trong bang VATTU : CREATE VIEW vw_DMVT AS SELECT MaVTu, TenVTu FROM VatTu * FROM vw_DMVT 2. Tao view vw_DonDH_TongSLDatNhap gsm (SoHD, TongSLDat va TongSLNhap) ding dé théng ké nhirng don dit hang 44 dwoc nhap hang day da: CREATE VIEW vw_DonDH_TongSLDatNhap (SoDH, TangSL Dat, TangSLNhap) AS SELECT DH SoDH,SUM(SLDat), SUM(SLNhap) FROM DONDH DH LEFT JOIN (PNHAP PN INNER JOIN CTPNHAP CTPN ON PN.SoPN=CTPN.SoPN) ON DH.SoDH=PN.SoDH LEFT JOIN CTDONDH ON DH.SoDH=CTDONDH.SoDH Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. GROUP BY DH.SoDH SEI “CT * FROM vw_DonDH_TongSLDatNhap 3. Tao view vw_DonDH_DaNhapDu gém (SoHD, DaNhapDu) eé hai gi tri 1a ‘Da Nhap Du’ néy don hang 46 44 nh4p di hoic ‘Chua Nhap Du’ néu don dit hang 46 chua nhip di : CREATE VIEW vw_DonDH_DaNhapDu AS SELECT SoDH,DaNhapDu = CASE WHEN — TongSLDat=TongSLNhap THEN 'Da nhap du’ ELSE ‘Chua nhap di’ END FROM vw_DonDH_TongSLDatNhap SELECT * FROM vw_DonDH_DaNhapDu 4. Tao view vw_TongNhap gdm (NamThang, MaVtu va TongSLNhap) ding 4é théng ké sé lwong nhGp cia cae vit tr trong ting nim thing trong img.(khéng sit dung ton kho) : CREATE VIEW vw_TongNhap (NamThang, MaVTu,TongSLNhap) AS SELECT CONVERT(CHAR(6),NgayNhap, 112), MaVTu,SUM(SLNhap) FROM PNHAP PN INNER JOIN CTPNHAP CTPN ON PN.SoPN=CTPN.SoPN GROUP BY CONVERT(CHAR(6),NgayNhap, 112), MaVTu SELECT * FROM vw_TongNhap 5. Tao view vw_TongXuat gdm (NamThang, MaVTu va TongSLXuat) ding 4é théng ké SL xuat cia vat tw trong timg ndm thang twong ing.(khéng sir dung TONKHO) : CREATE VIEW vw_TongXiat (NamThang. MaVatTu,TongSLXuat) AS T CONVERT(CHAR(6), NgayXuat, 112), MaVT, SUM(SLXuat) FROM PXUAT PX INNER JOIN CTPXUAT CTPX ON PX.SoPX=CTPX.SoPX GROUP BY CONVERT(CHAR(6), NgayXuat,112),MaVTu SELECT * FROM vi_TongXuat 6. Tao view vw_DonDH_MaVTu_TongSLNhap gim (SoHD, NgayHD, MaVTu, TenVTu, SLDat vi TongSLDaNhap) : Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. CREATE VIEW vw_DonDH_MaVTu_TongSLNhap (SoDH NgayDH, MaVatTu, TenVatTu,SLDat, TongSLDaNhap) AS ‘DHSoDH,NgayDH, FROM DONDH DH LEFT JOIN (PNHAP PN IN! PNSoPN=CTPN SoPN)ON DH. SoDH=PN.SoDH LEFT JOIN CTDONDH ON DH SoDH=CTDONDH.SoDH INNER JOIN VATTU ON CTDONDH.MaVTu=VATTU.MaVTu GROUP BY DH SoDH,NgayDH,CTDONDH.MaVTu, VATTU.TenVTu (SLDat), SUM(SLNhap) TER JOIN CTPNHAP CTPN ON {CT * FROM vw_DonDH_MaVTu_TongSLNhap IV, Bai Tap Thong Ké : 1, Danh sich ede phiéu djt hang chwa duge nh§p hang : DISTINCT SoDH vw_DonDH_MaVTu_TongSLNhap TongSLDaNhap IS NULL 2. Danh sich cée m§t hing chua durge at hang bao gid: SELECT MaVTu,TenVTu FROM vATTU WHERE MaVTu NOT IN (SE: 'T DISTINCT MaVTu FROM CTDONDH) 3. Nha cung c4p nao cé nhiéu don d4t hang nhat SELECT — TOP I WITH TIES NCC. MaNhaCC TenNhaC SoLanDH FROM NHACC.NCC INNER JOIN DONDH DH ON NCC. MaNhaC- GROUP BY NCC.MaNhaCC,TenNhaCC ORDER BY SoLanDH DE: OUNT(DH MaNhaCC) AS H.MaNhaCc 4. Vl tu nado cé tong s6 long xudt ban nhieu nhat : SELECT — TOP I WITH TIES VT MaVTu, TenVTuSUM(SLXua)AS Tong Xuat FROM VATTU VT INNER JOIN CTPXUAT CTPX ON VI. MaVTu=CTPX. MaVTu GROUP BY V7-MaVTu,TenVTu ORDER BY TongXuat DESC 5. Cho biét don dt hang nao cé nhiéu mit hang nhit : SELECT TOP 1 WITH TIES SoDH,COUNT(MaVTu)AS SoMatHang FROM CTDONDH GROUP BY SoDH ORDER BY SoMatHang DESC 6. Tao View vw_truc_TG béo céo Tinh hinh xudt nhap vat tu : CREATE VIEW vw_truc_TG AS Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. SELECT CONVERT(VARCHAR(10),NgayNhap, 105) AS NgayThang, MaVTu,SUM(SLNhap) AS TongNhap, 0 AS TongXuat FROM PNHAP PN INNER JOIN CTPNHAP CTPN ON PN SoP GROUP BY NgayNhap,MaVTu STPN.SoPN UNION SELECT CONVERT(VARCHAR(10),NgayXuat, 105), MaVTu, 0 AS Tong Xuat, SUM(SLXuat) AS TongNhap FROM PXUAT PX INNER JOIN CTPXUAT CTPX ON PX.SoPX=CTPX.SOPX GROUP BY NgayXiat, MaVTu SELECT NgayThang, MaVTu,SUM(TongNhap)AS TongNhap, SUM(TongXuat)AS TongXiat FROM ww_truc_TG GROUP BY NgayThang, MaVTu ORDER BY NgayThang 7. Cho biét tinh hinh nh§p va dit hang : SELECT DH SoDH,CTDONDH Ma¥Tu,Ten¥Tu,SUM(SLDat)AS SLDat, SUM(SLNhap)AS SLNhap FROM DONDH DH LEFT JOIN (PNHAP PN INNER JOIN CTPNHAP CTPN ON PNSoPN=CTPN.SoPN)ON DH.SoDH=PN.SoDH LEFT JOIN CTDONDH ON DH.SoDH=CTDONDH SoDH INNER JOIN VATTU ON CTDONDH.MaVTu=VATTU.MaVTu GROUP BY DH.SoDH,CTDONDH MaVTu,TenVTu 8. Théng ké tinh hinh @3t hing : SELECT NeayDH, CTDH.MaVTu,TenVTu,SUM(SLDat) AS TongSL.Dat FROM DONDH DH INNER JOIN CTDONDH CTDH ON DH SoD! JOIN VATTU VT ON CTDH.MaVTu=VT.MaVIu GROUP BY NgayDH,CTDH MaVTu,TenVIu 9. Théng ké tinh hinh nh§p hang : SELECT NgayNhap,CTPN. MaVTa, TenVTu,SUM(SLNhap) AS TongSLNhap FROM PNHAP PN INNER JOIN CTPNHAP CTPN ON PN. SoPN=CTPN.SoPN INNER JOIN VATTU VI ON CTPN.MaVTu=VI-MaVTu GROUP BY NgayNhap,CTPN.MaVTu,TenVTu 10. Théng ké nhimng don dat hang chia nhdp du sé lwong : SELECT DISTINCT SoDH FROM vw_DonDH_MaVTu_TongSLNhap WHERE SLDat >TongSLDaNhap V, Bai Tap PROCEDURE : 1. Xfy dung thi tyc tinh SL dit hang véi ten Spud_DonDH_TinhSLDat véi 2 tham sé vio li SoHD, MaVTu va 1 tham sé ra la SL dat cia mdi vat tw trong 1 sé dit hang : ~10- Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. CREATE PROCEDURE Spud_DonDH_TinhSLDat @So CHAR(4), @Ma CHAR(4), @sL INT OUTPUT AS SELECT — @SL =SLDat FROM CTDONDH WHERE SoDH = @So AND MaVTu = @Ma co DECLARE @Ra INT EXECUTE — Spud_DonDH_TinhSLDat 'D001''DD02'@Ra OUTPUT PRINT @Ra SELECT * FROM CTDONDH 2. Xay dung thi tye tinh ting sé Iwgng 44 nhap hing véi ton Spud_PNHAP_TinhTongSLNHang véi 2 tham so vio 1i SOHD, MaVTu vi 1 tham sé I ra la Téng sé lwong hang cia mét vat tw trong mét sé dit hang : CREATE PROCEDURE Spud_PNHAP_TinhTongSLNHang @PN CHAR(A), @Ma CHAR(A), @Tong «INT OUTPUT AS ELECT @Tong =SUM(SLNhap) FROM CTPNHAP WHERE SoPN = @PNA ND MaVTu = @Ma Go DECLARE @Ra INT EXECUTE — Spud_PNHAP_TinhTongSLNHang 'NOO1'DDO1'@Ra OUTPUT PRINT @Ra SELECT * FROM CTPNHAP 3. Xay dung thi tye tinh sé long tén kho cu cia 1 vat tu véi tén Spud_TonKho_TinhTonCuoi véi 2 tham sé vio li NamThang, MaVTu va 1 tham sé ra 1a so long cudi ky cia mét vit tw trong nim thang truyén vao : CREATE PROCEDURE Spud_TonKho_TinhTonCuoi @NT CHAR(6), @Ma CHAR(Y), @sLc INT OUTPUT AS SELECT — @SLC=SL.Cuoi FROM TONKHO WHERE — NamThang = @NT AND MaVTu = @Ma Go Te Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. DECLARE @Ra_INT EXECUTE — Spud_TonKho_TinhTonCuoi '200201','VDO!'@Ra OUTPUT. PRINT @Ra SELECT * FROM TONKHO. 4. Xay dung thi tue thém dir ligu vio bing VATTU véi tén Spud_VatTu_Them vi 4 tham sé vio chinh i MaVTu, TenVTu, DVTinh, PhanTram (MaVTu phai duy nhat). Kiém tra rang bude dit ligu phai hop 1é truée khi thye hign INSERT : CREATE PROCEDURE Spud_VatTu_Them @Ma CHAR), @Ten VARCHAR(100), @DvT VARCHAR(I0), @PT REAL AS IF EXISTS(SELECT*FROM VATTU WHERE MaVTu = @Ma) BEGIN PRINT 'Ma vat tu bi trung’ RETURN ND IF @PT <0 OR @FT > 100 BEGIN PRINT "uot qua phan tram quy dinh’ RETURN ND ERT INTO VATTU VALUES(@Ma ,@Ten @DVT ,@PT) Go SELECT * FROM VATTU EXECUTE Spud_VatTu_Them 'DDOV"'Gach', Vien’, 56 EXECUTE Spud_VatTu_Them 'GHO1''Gach, Vien’, 120 5. Xay dumg thi tue xod 1 vat tw 6 trong bing VATTU véi tén Spud_VatTu_Xoa véi tham sé vio chinh 14 MaVTu ein xod (MaVTu phai chua e6 trong CTDONDH,CTPXUAT,TONKHO). Kiém tra ring bude dit ligu truée khi thye hign Ignh DELETE : CREATE PROCEDURE Spud_VatTu_Xoa @Mav——CHAR(A) AS T * FROM CTDONDH WHE. E MaVTu = @MaV) PRINT ‘Khong xoa duoc vi ma vat tu nay co trong CTDONDH" RETURN END ~i2- Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. IF EXISTS (SELECT * FROM CTPNHAP WHERE MaVTu = @Ma¥) BEGIN PRINT ‘Khong xoa duoc vi ma vat tu nay co trong CTPNHAP! RETURN END IF EXISTS (SELECT * FROM CTPXUAT WHERE MaVTu = @Ma¥) BEGIN PRINT ‘Khong xoa duoc vi ma vat tu nay co trong CTPXUAT’ RETURN, END IF EXISTS (SELECT * FROM TONKHO WHERE MaVTu = @MaV) ‘BEGIN PRINT ‘Khong xoa duoc vi ma vat tu nay co trong TONKHO' RETURN DE ETE FROM VATTU WHER! E MaVTu = @MaV EXECUTE Spud VatTu_Xoa TV2I' 6. Xay dung thi tye sira déi vat tr trong bing VATTU véi tén Spud_VatTu_Sua v6i 4 tham s6 vio chinh 1a gid tri cin thay déi cita cde et trong bing VATTU. Thi tye chi cin thye hign Ifah UPDATE SET véi cic gid tr] tong img : CREATE PROCEDURE Spud_VatTu_Sua @MaV CHAR@), @Tenv VARCHAR(100), @pvT VARCHAR(I0), @Pr REAL AS UPDATE —-VATTU SET TenVTu = @TenV.DVTinh = @DVT,PhanTram = @PT WHERE MaVTu = @MaV EXECUTE Spud_VatTu_Sua ‘DDO!’ ‘Dau DVD ‘'Chiec'.20 SELECT * FROM VATTU 7. XAy dung thi tye ligt ké cde et dir ligu trong bing VATTU véi tén Spud_VatTu_BCDSach. Thit tuc nay khéng cé tham sé. Hanh déng duy nbat 1a edu Ignh truy vin SELECT * FROM VATTU sip xép voi TenVTu ting dan: Si T * FROM VATTU CREATE PROCEDURE Spud_VatTu_BCDSach AS T13- Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. FROM vATTU ORDERBY TenVTu co EXECUTE Spud_VatTu_BCDSach 8. Xdy dung thi tue ligt ké cdc eft bén trong bing TONKHO cé thém ct TenVTu trong bing VATTU véi t¢n Spud_TonKho_BCTonKho cé tham sé vao 1a NamThang muén loc dit ligu : SEI ‘CT * FROM TONKHO CREATE PROCEDURE Spud TonKho_BCTonKho @NT CHAR(6) AS SELECT TONKHO.NamThang, TONKHO.MaVTu,VATTU.TenVTu, TONKHO.SLDauw, TONKHO.TongSLN, TONKHO, TongSLX, TONKHO.SLCuoi FROM TONKHO INNER JOIN VATTU ON TONKHO.MaVTu = VATTUMaVTu WHERE TONKHO.NamThang = @NT Go EXECUTE Spud_TonKho_BCTonKho ‘200201’ 9. Xay dung thi tye ligt ké eae eft bén trong PXUAT va CTXUAT cé thém edt TenVTu trong bing VATTU véi tén Spud_PXuat_BCPXuat c6 tham sé vio 1a SoPX muén loc dit ligu, cé gid tri mac dinh JA NULL. Néu lic goi thure hign thi tuc ma khéng truyén gid tri SoPX vao thi thir tuc sé ligt ké tit cd cde phiéu xuat cé trong bing PXUAT : SELECT * FROM PXUAT SELECT * FROM CTPXUAT T PXUAT.SoPX,PXUAT.NgayNuat, PXUAT. TenKH, CTPXUAT. MaVTu, VATTU.TenVTu, CTPXUAT.SLXuat, CTPXUAT.DGXuat FROM PXUAT INNER JOIN CTPXUAT ON PXUAT.SoPX = CTPXUATSoPX INNER JOIN VATTU ON CTPXUAT.MaVTu = VATTU.MaVTu CREATE PROCEDURE Spud_PXuat_BCPXuat So CHAR(4)= NULL AS IF @So IS NULL SELECT PXUAT SoPX, PXUAT. NgayXuat, PXUAT.TenKH, CTPXUAT MaVTu, VATTU., TenVTu,CTPXUAT SLXuat, CTPXUAT DGXuat FROM PXUAT INNER JOIN CTPXUAT ON PXUAT SoPX = CTPXUAT.SoPX INNER JOIN VATTU ON CTPXUAT. MaVTu = VATTU.MaVTu ELSE SELECT PXUAT SoPX, PXUAT NgayXuat, PXUAT.TenKH, CTPXUAT MaVTu, VATTU.TenVTu,CTPXUAT SLXuat, CTPXUAT DGXuat FROM PXUAT INNER JOIN CTPXUAT ON PXUAT SoPX = CTPXUATSoPX ~i4- Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. INNER JOIN VATTU ON CTPXUAT MaVTu = VATTU.MaVTu WHERE PXUAT.SoPX = @So co EXECUTE Spud_PXuat_BCPXuat 'X003" 10. Xay dung thi tye thém méi dir ligu vio bing DONDH véi tén Spud_DONDH_Them cd 3 tham sé vio chinh li SoDH, MaNhaCC, NgayDH. Kiém tra ring bude truéc khi thye hign Ignh INSERT (SoHD phai duy nhit, MaNhaCC phai eé bén bang NhaCC). NgayDH c6 thé khdng truyén vio khi 6 sé ly gid tej mae djnh 14 ngay hign hanh : CREATE PROCEDURE Spud_DONDH_Them y CHAR(4), @Ma CHAR(4), @Neay DATETIME = NULL AS “CT MaNhaCC FROM NHACC WHERE MaNhaCC PRINT 'Khong co ma nha cung cap nay" RETURN END IF EXISTS(SELECT SoDH FROM DONDH WHERE SoDH = @So) BEGIN PRINT'Da co so dat hang nay roi’ RETURN END IF @Ngay IS NULL 'O DONDH VAL! ES(@So,@Ma,GETDATE() INSERT INTO DONDH VALUES(@So,@Ma,@Ngay) co SELECT * FROM DONDH EXECUTE Spud_DONDH_Them'D007:'COs' EXECUTE Spud_DONDH_Them'D008"'CO8' EXECUTE Spud_DONDH_Them'D008 11. Xay dung thi tue x04 DONDH véi tén Spud_DonDH_Xoa c6 1 tham sb vao chinh 1a SoDH can xéa. Néu rang bude dit ligu hop Ié thi ty dong xo cae dang dir ligu lin quan bén bang CTDONDH. Kiém tra rang bude dit ligu truéc khi thye higén DELETE (SoDH phai chwa cé trong PNHAP) = CREATE PROCEDURE Spud_DonDH_Xoa @So CHAR(4) AS IF EXISTS(SELECT SoDH FROM PNHAP WHERE SoDH = @So) BEGIN Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. PRINT ‘Khong xoa duoc vi SoDH nay co trong PNHAP' RETURN END BEGIN IF EXISTS(SELECT SoDH FROM CTDONDH WHERE SoDH = @So) DI “ROM CTDONDH WHERE SoDH = @So IF EXISTS(SELECT SoDH FROM DONDH WHERE SoDH = @So) DELETE FROM DONDH WHERE SoDH = @So END EXECUTE Spud_DonDH_Xoa 'DOOI' EXECUTE Spud_DonDH_Xoa 'D008" 12. Xay dyng thi tye sia ddi dir ligu trong DONDH véi tén Spud_DonDH_Sua gom 3 tham sé vio chinh 1a cae gia tri cin thanh d6i cia cde et SODH, MaNhaCC, NgayDH. Kiém tra rang bude dit ligu truée khi thye hign Ih UPDATE SET. (MaNhaCC phai 6 trong NHACC, NgayDH phai truéc NgayNhap néu don dit hang 44 duge nbap vé rai CREATE PROCEDURE Spud_DonDH Sua CHARY), CHAR(A), DATETIME AS IF NOT EXISTS (SELECT * FROM NHACC WHERE MaNhaCC = @MaN) BEGIN PRINT ' Ma nha cung cap Khong dung RETURN END IF @NgayDat > (SELECI BEGIN PRINT 'Ngay dat hang phai truoc ngay nhap hang’ RETURN T MIN(NgayNhap) FROM PNHAP WHERE SoDH = @SoDH) DONDH MaNhaCC SoDH YMaN ,NgayDH = @NgayDat oDH 13. Xfy dung thi tye thém méi dit ligu vio CTDONDH véi tén Spud_CTDonDH_Them gim 3 tham sé vao chinh Ja gia tri cin thay déi cia cae eft trong bing DONDH li SoDH, MaVTu va SLDat, Kiém tra cdc ring bude dit ligu phai hgp Ié true khi thyc hign Iénh INSERT INTO (SoDh phii cé bén DONDH, MaVTu phai cé bén VATTU). SoDH va MaVTu phai duy nhat trong bang CTDONDH ~16- Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. 14, Xy dung thii tye xod CTDONDH véi tén Spud_CTDonDH_Xoa gim 2 tham sé vio chinh la SoDH v va MaVTu can xoa. Kiém tra rang buéc dir DH va MaVTu nay phai chua duge nhip vio trong cic bang lién quan PNHAP va CTPNHAP : 15. Xfiy dyng thi tye sita déi di ligu trong CTDONDH véi tin Spud_CTDonDH_Sua gom 3 tham sé vao chinh 1a gia tri can thay d6i cia cic eft trong CTDONDH : SoDH, MaVTu va SLDat. Kiém tra ede rang bude dir ligu phai hop If truée khi thye hign Iinh UPDATE SET. SoDH va MaVTu phai cé bén CTDONDH. SoDH méi phai >= Tong sé Iwong 44 nhap hang (néu da c6 nhap hang) : CREATE PROCEDURE Spud_CTDonDH_Sua @S0DH —— CHAR(4), CHAR(Y), INT ~17- Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. AS DECLARE @TongSLN INT ‘CT * FROM CTDONDH WHERE SoDH = @SoDH) PRINT 'So dat hang khong dung" RETURN ‘CT * FROM CTDONDH WHE E SoDH = @SoDH AND PRINT ‘Don dat hang khong co vat tu nay! RETURN: END SELECT @TongSLN = SUM(SLNhap) FROM CTPNHAP WHERE MaVTu = @MaV AND SoPN IN (SELECT SoPN FROMP! WHERE SoDH = @SoDH) IF @SL < @TongSLN BEGIN PRINT 'so luong nhap phai lon hon hoae bang tong so luong da nhap ' RETURN END UPDATE SET WHERE — SoDH = @SoDH AND MaVTu = @MaV SELECT — SUM(SLNhap) FROM CTPNHAP WHE MaVTu = DDOI' AND SoPN IN(SELECT SoPN FROM PNHAP WHERE SoDH = @SoDH) SELECT * FROM CIDONDH EXECUTE Spud_CTDonDH_Sua 'D001'/DDO1'9 EXECUTE Spud_CTDonDH_Sua 'DDO1'DDOI',15 EXECUTE Spud_CTDonDH_Sua ‘D001, DDII'15 EXECUTE Spud_CTDonDH_Sua ‘D001 DDO!'15 16. XAy dung thi tue cip nhat bing VATTU véi 3 chite ning la Thém (), Sia (U) va Xod (D). Kiém tra cée rang bude khi thye hign chite ning : CREATE PROCEDURE Pro_VatTu @Loai CHAR(), @Mav CHAR(4) = NULL, @TenV ——_- VARCHAR(100) = NULL, ~18- Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. @pvr VARCHAR(10) = NULL, @r REAL = NULL AS IF @Loai = 'D" IF NOT EXISTS(SELECT*FROM CTPNHAP WHERE MaVTu = @ AND NOT EXISTS(SELECT*FROM CTPXUAT WHERE MaVTu AND NOT EXISTS| T*FROM TONKHO Wi AND NOT EXISTS(SELECT*FROM CTDONDH WI DELETE FROM VATTU WHERE MaVTu = @MaV ELSE PRINT ' Khong xoa duoc vi ma vat tu co lien quan den cac bang Khac' IF NOT EXISTS(SELECT * FROM VATTU WHERE MaVTu = @MaV) AND (@PT >= 0 AND @PT <= 100) INSERT INTO VATTU VALUES( ELSE PRINT Khong them duoc vi trung ma vat tu ' MaV,@TenV,@DVT.@PT) IF @Loai ='U' IF NOT EXISTS(SELECT * FROM VATTU WHERE MaVTu = AND(@PT >=0 AND @PT <= 100) UPDATE VATTU SET MaVTu = @MaV,TenVTu = PhanTram = @P WHERE MaVTu = (@MaV ELSE PRINT ' Khong cho phep sua vi co lien quan den cac hang khac ' @Mav) @TenV.DVTinh = @DVT, co SELECT * FROM TONKHO SELECT * FROM CTPNHAP SELECT * FROM CTPXUAT SELECT * FROM CTDONDH Pro_VatTu 'T,DDO1' Dau DVD TQ ''Bo'35 Pro_VatTu 'D', DDO!’ Dau DVD TQ ''B0'35 Pro_VatTu 'U;'DDO1" ‘Dau DVD TQ *'Bo'35 EX? CUTE Pro_VatTu 'D',DDO1' VI, Bai Tap TRIGGER : 1, XAy dung trigger khi th¢m mdi di ligu vao bang PNHAP voi tén TG_PNhap_Them. Trong a6 cin kiém tra c&c rang bude dir ligu phai hgp Ig : Nay nhp hang phai sau ngay dt hing CREATE TRIGGER TG_PNhap_Them ~19- Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. ON PNHAP FOR INSERT AS DECLARE @NgayN @NeayDH @SoDH @NeayN = NgayNhop, @SoDH = =SoDH FROM PNHAP T @NgayDH = NeayDH FROM DONDH WHERE — SoDH = @SoDH IF @NgayN < @NgayDH BEGIN PRINT ' Neay nhap phai sau ngay dat’ ROLLBACK TRANSACTION END SELECT * FROM DONDH INSERT INTO PNHAP VALUES('N00S', D001’, '2002/01/16') 2. XAy dung trigger khi thém mdi dir ligu vao bang CTPN, tén TG_CTPNhap_Them. Trong 6 cin kiém tra cae rang bude dit ligu phai hop I : s6 lwong nhap hang <= (sé Iwong dit — tng sé lwong 44 nh4p vaio truée a6) : CREATE TRIGGER TG_CTPNhap_Them ON CTPNHAP FOR INSERT AS DECLARE @SLN’ INT, @SLD INT, @TongN INT, @SoDH — CHAR(4) DECLARE @MaV CHAR(Y), @SoPN ——CHAR(4) SELECT @SoDH = SoDH FROM PNHAP WHERE SoPN = (SELECT SoPN FROM INSERTED) @Mav MaVTu, @SIN Nhap, @SoPN FROM —_ INSERTED SoPN ~20- Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. SELECT — @SLD = SLDat FROM CIDONDH WHERE SoDH =@SoDH AND MaVTu = @MaV SELECT @TongN = SUM(SLNhap) FROM CTPNHAP WHE. SaPN <> @SoPN AND MaVTu = @MaV AND SoPN IN (S SoPN FROM PNHAP WHERE SoDH = @SoDH) IF @SLN > (@SLD - @TongN) BEGIN PRINT 'SL nhap phai nko hon SL dat tru di tong SL da nhap ' ROLLBACK TRANSACTION END SELECT * FROM CTPNHAP SELECT * FROM CTDONDH SELECT * FROM PNHAP INSERT INTO PNHAP(SoPN,SoDH) VALUES('NO06,'D003') INSERT INTO CTPNHAP VALUES ('NO0S*,'DDOI',15) DELETE FROM CTPNHAP WHERE SoPN = 1005" AND MaVTu = ‘DDO!’ SELECT * FROM CTDONDH WHERE SODH="D003' AND MAVTU="TV14" SELECT — SUM(SLNhap)AS TongSLN FROM CTPNHAP V14" AND SoPN IN (S ‘LECT SoPN FROM PNHAP WHERE INSERT INTO CTPNHAP VALUES ('NO06",'TV14.4,15) 3. Xay dung trigger khi xoa dir ligu trong bang PXUAT voi tén TG_PXuat_Xoa. Trong dé cin thye hign cde hanh dng : thye hign ty dong xod cde dong dif ligu lign quan bén bing CTPXUAT. CREATE TRIGGER TG_PXuat_Xoa ON PXUAT FOR DELETE AS DELETE CTPXUAT WHERE SoPX = (SELECT SoPX FROM DE! ESTED) 4. Xay dyng trigger khi xo4 dir ligu trong bang PNHAP véi tén TG_PNhap_Xoa, Trong 46 cin thyc hign cdc hanh dng : thye hign ty dong xod cde ding dif ligu lién quan bén bing CTPNHAP CREATE TRIGG! R TG_PNhap_Xoa wa Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. ON PNHAP FOR DELETE AS DE ‘TE CTPNHAP WHERE SoPN = (SELECT SoPN FROM DELETED) 5. Trong bing PNHAP tgo them ct tong tri git co ttn TONGTG voi kigu FLOAT ding dé lu ting tri gid cia 1 phiéu nhap hang. Trong Trigger 7G_PNhap_Them 4a xay dung truée 46 & phan 1. BS sung thém cac tinh toan ty déng sau : - Tang thém gi tri tai cét TongTG trong bang PNHAP khi dir ligu trong bang CTPNHAP duge thém vao. - Ting gid trj tai ct TONGSLN trong bing TONKHO khi dir bang CTPNHAP duge thém vao. figu trong ALTER TABI PNHAP ADD TongTG FLOAT CREATE TRIGGER TG_CTPNhap_Them ON CTPNHAP FOR INSERT AS DECLARE @TongTG FLOAT, @SoPN——CHAR(4), @NT CHAR(6) DECLARE @SI INT, @MaV CHAR(4) SELECT — @SoPN = SoPN, @SLNMoi = SLNhap, @MaV = MaVTu FROM INSERTED SELECT — @TongTG — = SUM(SLNhap*DGNhap) FROM CTPNHAP WHERE —— SoPN = @S0PN UPDATE — PNHAP SET TongTG = @TongTG WHERE SoPN = @SoPN SELECT — @NT = CONVERT(CHAR(6), NgayNhap, 112) FROM PNHAP WHERE — SoPN =@SoPN UPDATE — TONKHO SET TongSLN = (TongSLN + @SLNMboi) WHERE — NamThang = @NT AND MaVTu = @MaV SELECT * FROM PNHAP SELECT * FROM CTPNHAP SELECT * FROM TONKHO waa Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. --vi pham gié tri khod ngoai INSERT INTO CTPNHAP (SoPN,MaVTu,SLNhap,DGNhap) VALUES ('NO05',DD02',10,15) DELETE FROM CTPNHAP WHERE SoPN = 005" AND MaVTu = 'DD02" 6. Xfy dung trigger khi xoa dir ligu trong bang CTPNHAP véi tén TG_CTPNhap_Xoa. Trong 46 cin thye hign cdc tinh toan sau : - Gidm gid tri tai eft TONGTG trong bing PNHAP GSLN trong bang TONKHO CREATE TRIGGER TG_CTPNhap_Xoa ON CTPNHAP FOR DELETE AS DECLARE @TongTG FLOAT, @SoPN——CHAR(4), @NamThang CHAR(6) DECLARE — @SLNhapXoa INT, @MaVTu — CHAR(4), Goa FLOAT OPN, @SLNhapXoa=SLNhap, @MaVTu=MaVTu, @DGXoa=DGNhap FROM UPDATE SoPN=@SoPN @NamThang=CONVERT(CHAR(6),NgayNhap,112) PNHAP UPDATE — TONKHO SET TongSLN = TongSLN - @SLNhapXoa WHE! NamThang=@NamThang AND MaVIi 7. XAy dung trigger khi cp nh4t bang CTPNHAP, Kiém tra tinh hop Ié cia dir ligu : CREATE TRIG ON AS R TG_CTPNhap_Sua “TPNHAP FOR UPDATE DECLARE @TongTG Float, @SoPN——CHAR(4), 723 Bai Tap SQL Server Bign sogn : GV Lé Chi Lun - 0982080380. @MaVTu — CHAR(4) DECLARE — @NamThang CHAR(6), @SLNhap INT JPDATE(SoPN) BEGIN PRINT ‘Khong duoc sua doi so phieu nhat’ ROLLBACK TRANSACTION END IF UPDATE (MaVTu) BEGIN PRINT ‘Khong duoc sua doi ma vat tu! ROLLBACK TRANSACTION @SoPN=SoPN, @MaVTu=MaVTu FROM INSERTED @TongTG = SUM(SLNhap*DGNhap) CTPNHAP WHERE — SoPN=@SoPN SELECT @NamThang=CONVERT(CHAR(6),NgayNhap, 112) FROM PNHAP WHERE ——SoP! @SoPN UPDATE PNHAP SET TongTG = @TangTG WHERE SoPN=@SoPN UPDATE TONKHO SET TongSLN=TongSLN -(Select SLNhap FROM DELETED) + (SELECT SLNhap FROM INSERTED) SELECT @SLNhap=SUM(SLNhap) FROM CTPNHAP WHERE — MaVTu=@MaVTu AND SoPN IN (SELECT SoPN FROM PNHAP WHERE CONVERT(CHAR(6),NgayNhap, 112) = @NamThang) UPDATE TONKHO ET TongSLN=@SLNhap WHERE NamThang famThang SELECT * FROM CTPNHAP SELECT * FROM TONKHO UPDATE CTPNHAP SET SLNhap = 6 WHERE SoPN ='N00S' AND MaVTU = 'DDOI wad

You might also like