Bài Tập SQL Server quản lý bán hàng

12. Xây dựng thủ tục sửa đổi dữ liệu trong DONDH với tên Spud_DonDH_Sua gồm 3 tham số vào chính là các giá trị cần thanh đổi của các cột SoDH, MaNhaCC, NgayDH. Kiểm tra ràng buộc dữ liệu trước khi thực hiện lệnh UPDATE SET. (MaNhaCC phải có trong NHACC, NgayDH phải trước NgayNhap nếu đơn đặt hàng đã được nhập về rồi.) :
 
CREATE PROCEDURE Spud_DonDH_Sua
@SoDH CHAR(4),
@MaN CHAR(4),
@NgayDat DATETIME
AS
IF NOT EXISTS (SELECT * FROM NHACC WHERE MaNhaCC = @MaN)
BEGIN
PRINT ‘ Ma nha cung cap khong dung ‘
RETURN
END
IF @NgayDat >(SELECT MIN(NgayNhap) FROM PNHAP WHERE SoDH = @SoDH)
BEGIN
PRINT ‘Ngay dat hang phai truoc ngay nhap hang ‘
RETURN
END
UPDATE DONDH
SET MaNhaCC = @MaN ,NgayDH = @NgayDat
WHERE SoDH = @SoDH
 

http://s1.liketly.com/flash/edoc/jh2i1fkjb33wa7b577g9lou48iyvfkz6-swf-2013-10-12-bai_tap_sql_server_quan_ly_ban_hang.mL9I4RG3Or.swf /tai-lieu/de-tai-ung-dung-tren-liketly-40312/

Để tải bản DOC Đầy Đủ xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.

Tóm tắt nội dung:

ENCES 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_MaVTu

FOREIGN KEY (MaVTu) REFERENCES VATTU(MaVTu)

ALTER TABLE CTPNHAP ADD CONSTRAINT FRK_CTPNHAP_PNHAP_SoPN

FOREIGN KEY (SoPN) REFERENCES PNHAP(SoPN)

ALTER 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(SoPX) REFERENCES PXUAT(SoPX)

ALTER TABLE TONKHO ADD CONSTRAINT FRK_TONKHO_VATTU_MaVTu

FOREIGN KEY(MaVTu) REFERENCES VATTU(MaVTu)

GO

II, Chèn Dữ Liệu Vào Các Bảng :

1. Chèn bảng Nhà Cung Cấp

INSERT INTO NHACC (MaNhaCC,TenNhaCC,DiaChi,DienThoai) VALUES (‘C01′,’Bui Tien Truong’,’Xuan La, Tay Ho, Ha Noi’,’0989995221′)

INSERT INTO NHACC (MaNhaCC,TenNhaCC,DiaChi,DienThoai) VALUES (‘C02′,’Nguyen Thi Thu’,’Quan La, Tay Ho, Ha Noi’,’0979012300′)

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’,’chua co’)

INSERT INTO NHACC (MaNhaCC,TenNhaCC,DiaChi,DienThoai) VALUES (‘C07′,’Bui Duc Kien’,’To 11, Cum 2, Xuan La’,’0437530097′)

2. Chèn bảng Vật Tư

INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘DD01′,’Dau DVD Hitachi 1 dia’,’Bo’,40)

INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘DD02′,’Dau DVD Hitachi 3 dia’,’Bo’,40)

INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘TL15′,’Tu lanh Sanyo 150 lit’,’Cai’,25)

INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘TL90′,’Tu lanh Sanyo 90 lit’,’Cai’,20)

INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘TV14′,’Tivi Sony 14 inches’,’Cai’,15)

INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘TV21′,’Tivi Sony 21 inches’,’Cai’,10)

INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘TV29′,’Tivi Sony 29 inches’,’Cai’,10)

INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘VD01′,’Dau VCD Sony 1 dia’,’Bo’,30)

INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘VD02′,’Dau VCD Sony 3 dia’,’Bo’,30)

3. Chèn bảng Đơn Đặt Hàng

INSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES (‘D001′,’C03′,’01/15/2002’)

INSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES (‘D002′,’C01′,’01/30/2002’)

INSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES (‘D003′,’C02′,’02/10/2002’)

INSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES (‘D004′,’C05′,’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 bảng Phiếu Nhập

INSERT INTO PNHAP(SoPN,SoDH,NgayNhap) VALUES (‘N001′,’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,NgayNhap) VALUES (‘N004′,’D003′,’02/15/2002’)

5. Chèn bảng Chi Tiết Đơn Đặt Hàng

INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D001′,’DD01’,10)

INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D001′,’DD02’,15)

INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D002′,’VD02’,30)

INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D003′,’TV14’,10)

INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D003′,’TV29’,20)

INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D004′,’TL90’,10)

INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D005′,’TV14’,10)

INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) 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(‘D005′,’VD01’,20)

6. Chèn bảng Chi Tiết Phiếu Nhập

INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N001′,’DD01’,8,2500000)

INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N001′,’DD02’,10,3500000)

INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N002′,’DD01’,2,2500000)

INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N002′,’DD02’,5,3500000)

INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N003′,’VD02’,30,2500000)

INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N004′,’TV14’,5,2500000)

INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N004′,’TV29’,12,3500000)

7. Chèn bảng Phiếu Xuất

INSERT INTO PXUAT(SoPX,NgayXuat,TenKH) VALUES(‘X001′,’01/17/2002′,’Duong Minh Chau’)

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 bảng Chi Tiết Phiếu Xuất

INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES(‘X001′,’DD01’,2,3500000)

INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES(‘X002′,’DD01’,1,3500000)

INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES(‘X002′,’DD02’,5,4900000)

INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES(‘X003′,’DD01’,3,3500000)

INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES(‘X003′,’DD02’,2,4900000)

INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES(‘X003′,’VD02’,10,3250000)

9. Chèn bảng Tồn Kho

INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200201′,’DD01’,0,10,6)

INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200201′,’DD02’,0,15,7)

INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200201′,’VD02’,0,30,10)

INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200202′,’DD01’,4,0,0)

INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200202′,’DD02’,8,0,0)

INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200202′,’VD02’,20,0,0)

INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200202′,’TV14’,5,0,0)

INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200202′,’TV29’,12,0,0)

III, Bài Tập VIEW :

1. Tạo view vw_DMVT gồm (MaVTu và TenVTu) dùng để liệt kê danh sách các vật tư hiện có trong bảng VATTU :

CREATE VIEW vw_DMVT

AS

SELECT MaVTu,TenVTu

FROM VatTu

SELECT * FROM vw_DMVT

2. Tạo view vw_DonDH_TongSLDatNhap gồm (SoHD, TongSLDat và TongSLNhap) dùng để thống kê những đơn đặt hàng đã được nhập hàng đầy đủ :

CREATE VIEW vw_DonDH_TongSLDatNhap (SoDH,TongSLDat,TongSLNhap)

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

GROUP BY DH.SoDH

SELECT * FROM vw_DonDH_TongSLDatNhap

3. Tạo view vw_DonDH_DaNhapDu gồm (SoHD, DaNhapDu) có hai giá trị là ‘Da Nhap Du’ nếy đơn hàng đó đã nhập đủ hay ‘Chua Nhap Du’ nếu đơn đặt hàng đó chưa nhập đủ :

CREATE VIEW vw_DonDH_DaNhapDu

AS

SELECT SoDH,DaNhapDu = CASE

WHEN TongSLDat=TongSLNhap

THEN ‘Da nhap du’

ELSE

‘Chua nhap du’

END

FROM vw_DonDH_TongSLDatNhap

SELECT * FROM vw_DonDH_DaNhapDu

4. Tạo view vw_TongNhap gồm (NamThang, MaVtu và TongSLNhap) dùng để thống kê số lượng nhập của các vật tư trong từng năm tháng tương ứng.(không sử dụng tồn 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. Tạo view vw_TongXuat gồm (NamThang, MaVTu và TongSLXuat) dùng để thống kê SL xuất của vật tư trong từng năm tháng tương ứng.(không sử dụng TONKHO) :

CREATE VIEW vw_TongXuat (NamThang,MaVatTu,TongSLXuat)

AS

SELECT CONVERT(CHAR(6),NgayXuat,112),MaVTu,SUM(SLXuat)

FROM PXUAT PX INNER JOIN CTPXUAT CTPX ON PX.SoPX=CTPX.SoPX

GROUP BY CONVERT(CHAR(6),NgayXuat,112),MaVTu

SELECT * FROM vw_TongXuat

6. Tạo view vw_DonDH_MaVTu_TongSLNhap gồm (SoHD, NgayHD, MaVTu, TenVTu, SLDat và TongSLDaNhap) :

CREATE VIEW vw_DonDH_MaVTu_TongSLNhap (SoDH,NgayDH,MaVatTu,TenVatTu,SLDat,TongSLDaNhap)

AS

SELECT DH.SoDH,NgayDH,CTDONDH.MaVTu,TenVTu,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 INNER JOIN VATTU ON CTDONDH.MaVTu=VATTU.MaVTu

GROUP BY DH.SoDH,NgayDH,CTDONDH.MaVTu,VATTU.TenVTu

SELECT * FROM vw_DonDH_MaVTu_TongSLNhap

IV, Bài Tập Thống Kê :

1. Danh sách các phiếu đặt hàng chưa được nhập hàng :

SELECT DISTINCT SoDH

FROM vw_DonDH_MaVTu_TongSLNhap

WHER…

Download miễn phí Bài Tập SQL Server quản lý bán hàng12. Xây dựng thủ tục sửa đổi dữ liệu trong DONDH với tên Spud_DonDH_Sua gồm 3 tham số vào chính là các giá trị cần thanh đổi của các cột SoDH, MaNhaCC, NgayDH. Kiểm tra ràng buộc dữ liệu trước khi thực hiện lệnh UPDATE SET. (MaNhaCC phải có trong NHACC, NgayDH phải trước NgayNhap nếu đơn đặt hàng đã được nhập về rồi.) :CREATE PROCEDURE Spud_DonDH_Sua@SoDH CHAR(4),@MaN CHAR(4),@NgayDat DATETIMEASIF NOT EXISTS (SELECT * FROM NHACC WHERE MaNhaCC = @MaN)BEGINPRINT ‘ Ma nha cung cap khong dung ‘RETURNENDIF @NgayDat >(SELECT MIN(NgayNhap) FROM PNHAP WHERE SoDH = @SoDH)BEGINPRINT ‘Ngay dat hang phai truoc ngay nhap hang ‘RETURNENDUPDATE DONDHSET MaNhaCC = @MaN ,NgayDH = @NgayDatWHERE SoDH = @SoDHENCES VATTU(MaVTu)ALTER TABLE CTDONDH ADD CONSTRAINT FRK_CTDONDH_DONDH_SoDHFOREIGN KEY (SoDH) REFERENCES DONDH(SoDH)ALTER TABLE PNHAP ADD CONSTRAINT FRK_PNhap_DonDH_SoDHFOREIGN KEY (SoDH) REFERENCES DONDH(SoDH)ALTER TABLE CTPNHAP ADD CONSTRAINT FRK_CTPNHAP_VATTU_MaVTuFOREIGN KEY (MaVTu) REFERENCES VATTU(MaVTu)ALTER TABLE CTPNHAP ADD CONSTRAINT FRK_CTPNHAP_PNHAP_SoPNFOREIGN KEY (SoPN) REFERENCES PNHAP(SoPN)ALTER TABLE CTPXUAT ADD CONSTRAINT FRK_CTPXUAT_VATTU_MaVTuFOREIGN KEY(MaVTu) REFERENCES VATTU(MaVTu)ALTER TABLE CTPXUAT ADD CONSTRAINT FRK_CTPXUAT_PXUAT_SoPXFOREIGN KEY(SoPX) REFERENCES PXUAT(SoPX)ALTER TABLE TONKHO ADD CONSTRAINT FRK_TONKHO_VATTU_MaVTuFOREIGN KEY(MaVTu) REFERENCES VATTU(MaVTu)GOII, Chèn Dữ Liệu Vào Các Bảng :1. Chèn bảng Nhà Cung CấpINSERT INTO NHACC (MaNhaCC,TenNhaCC,DiaChi,DienThoai) VALUES (‘C01′,’Bui Tien Truong’,’Xuan La, Tay Ho, Ha Noi’,’0989995221′)INSERT INTO NHACC (MaNhaCC,TenNhaCC,DiaChi,DienThoai) VALUES (‘C02′,’Nguyen Thi Thu’,’Quan La, Tay Ho, Ha Noi’,’0979012300′)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’,’chua co’)INSERT INTO NHACC (MaNhaCC,TenNhaCC,DiaChi,DienThoai) VALUES (‘C07′,’Bui Duc Kien’,’To 11, Cum 2, Xuan La’,’0437530097′)2. Chèn bảng Vật TưINSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘DD01′,’Dau DVD Hitachi 1 dia’,’Bo’,40)INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘DD02′,’Dau DVD Hitachi 3 dia’,’Bo’,40)INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘TL15′,’Tu lanh Sanyo 150 lit’,’Cai’,25)INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘TL90′,’Tu lanh Sanyo 90 lit’,’Cai’,20)INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘TV14′,’Tivi Sony 14 inches’,’Cai’,15)INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘TV21′,’Tivi Sony 21 inches’,’Cai’,10)INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘TV29′,’Tivi Sony 29 inches’,’Cai’,10)INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘VD01′,’Dau VCD Sony 1 dia’,’Bo’,30)INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES (‘VD02′,’Dau VCD Sony 3 dia’,’Bo’,30)3. Chèn bảng Đơn Đặt HàngINSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES (‘D001′,’C03′,’01/15/2002’)INSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES (‘D002′,’C01′,’01/30/2002’)INSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES (‘D003′,’C02′,’02/10/2002’)INSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES (‘D004′,’C05′,’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 bảng Phiếu NhậpINSERT INTO PNHAP(SoPN,SoDH,NgayNhap) VALUES (‘N001′,’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,NgayNhap) VALUES (‘N004′,’D003′,’02/15/2002’)5. Chèn bảng Chi Tiết Đơn Đặt HàngINSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D001′,’DD01’,10)INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D001′,’DD02’,15)INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D002′,’VD02’,30)INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D003′,’TV14’,10)INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D003′,’TV29’,20)INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D004′,’TL90’,10)INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES(‘D005′,’TV14’,10)INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) 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(‘D005′,’VD01’,20)6. Chèn bảng Chi Tiết Phiếu NhậpINSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N001′,’DD01’,8,2500000)INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N001′,’DD02’,10,3500000)INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N002′,’DD01’,2,2500000)INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N002′,’DD02’,5,3500000)INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N003′,’VD02’,30,2500000)INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N004′,’TV14’,5,2500000)INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES(‘N004′,’TV29’,12,3500000)7. Chèn bảng Phiếu XuấtINSERT INTO PXUAT(SoPX,NgayXuat,TenKH) VALUES(‘X001′,’01/17/2002′,’Duong Minh Chau’)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 bảng Chi Tiết Phiếu XuấtINSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES(‘X001′,’DD01’,2,3500000)INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES(‘X002′,’DD01’,1,3500000)INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES(‘X002′,’DD02’,5,4900000)INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES(‘X003′,’DD01’,3,3500000)INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES(‘X003′,’DD02’,2,4900000)INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES(‘X003′,’VD02’,10,3250000)9. Chèn bảng Tồn KhoINSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200201′,’DD01’,0,10,6)INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200201′,’DD02’,0,15,7)INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200201′,’VD02’,0,30,10)INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200202′,’DD01’,4,0,0)INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200202′,’DD02’,8,0,0)INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200202′,’VD02’,20,0,0)INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200202′,’TV14’,5,0,0)INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES(‘200202′,’TV29’,12,0,0)III, Bài Tập VIEW :1. Tạo view vw_DMVT gồm (MaVTu và TenVTu) dùng để liệt kê danh sách các vật tư hiện có trong bảng VATTU :CREATE VIEW vw_DMVTASSELECT MaVTu,TenVTuFROM VatTuSELECT * FROM vw_DMVT2. Tạo view vw_DonDH_TongSLDatNhap gồm (SoHD, TongSLDat và TongSLNhap) dùng để thống kê những đơn đặt hàng đã được nhập hàng đầy đủ :CREATE VIEW vw_DonDH_TongSLDatNhap (SoDH,TongSLDat,TongSLNhap)ASSELECT 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.SoDHGROUP BY DH.SoDHSELECT * FROM vw_DonDH_TongSLDatNhap3. Tạo view vw_DonDH_DaNhapDu gồm (SoHD, DaNhapDu) có hai giá trị là ‘Da Nhap Du’ nếy đơn hàng đó đã nhập đủ hay ‘Chua Nhap Du’ nếu đơn đặt hàng đó chưa nhập đủ :CREATE VIEW vw_DonDH_DaNhapDuASSELECT SoDH,DaNhapDu = CASEWHEN TongSLDat=TongSLNhapTHEN ‘Da nhap du’ELSE’Chua nhap du’ENDFROM vw_DonDH_TongSLDatNhapSELECT * FROM vw_DonDH_DaNhapDu4. Tạo view vw_TongNhap gồm (NamThang, MaVtu và TongSLNhap) dùng để thống kê số lượng nhập của các vật tư trong từng năm tháng tương ứng.(không sử dụng tồn kho) :CREATE VIEW vw_TongNhap (NamThang,MaVTu,TongSLNhap)ASSELECT CONVERT(CHAR(6),NgayNhap,112),MaVTu,SUM(SLNhap)FROM PNHAP PN INNER JOIN CTPNHAP CTPN ON PN.SoPN=CTPN.SoPNGROUP BY CONVERT(CHAR(6),NgayNhap,112),MaVTuSELECT * FROM vw_TongNhap5. Tạo view vw_TongXuat gồm (NamThang, MaVTu và TongSLXuat) dùng để thống kê SL xuất của vật tư trong từng năm tháng tương ứng.(không sử dụng TONKHO) :CREATE VIEW vw_TongXuat (NamThang,MaVatTu,TongSLXuat)ASSELECT CONVERT(CHAR(6),NgayXuat,112),MaVTu,SUM(SLXuat)FROM PXUAT PX INNER JOIN CTPXUAT CTPX ON PX.SoPX=CTPX.SoPXGROUP BY CONVERT(CHAR(6),NgayXuat,112),MaVTuSELECT * FROM vw_TongXuat6. Tạo view vw_DonDH_MaVTu_TongSLNhap gồm (SoHD, NgayHD, MaVTu, TenVTu, SLDat và TongSLDaNhap) :CREATE VIEW vw_DonDH_MaVTu_TongSLNhap (SoDH,NgayDH,MaVatTu,TenVatTu,SLDat,TongSLDaNhap)ASSELECT DH.SoDH,NgayDH,CTDONDH.MaVTu,TenVTu,SUM(SLDat),SUM(SLNhap)FROM DONDH DH LEFT JOIN (PNHAP PN INNER JOIN CTPNHAP CTPN ON PN.SoPN=CTPN.SoPN)ON DH.SoDH=PN.SoDHLEFT JOIN CTDONDH ON DH.SoDH=CTDONDH.SoDH INNER JOIN VATTU ON CTDONDH.MaVTu=VATTU.MaVTuGROUP BY DH.SoDH,NgayDH,CTDONDH.MaVTu,VATTU.TenVTuSELECT * FROM vw_DonDH_MaVTu_TongSLNhapIV, Bài Tập Thống Kê :1. Danh sách các phiếu đặt hàng chưa được nhập hàng :SELECT DISTINCT SoDHFROM vw_DonDH_MaVTu_TongSLNhapWHER…