Xây dựng phần mềm quản lý hệ thống bán hàng trong siêu thị bán lẻ

56 801 1
Xây dựng phần mềm quản lý hệ thống bán hàng trong siêu thị bán lẻ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mục lụcLỜI NÓI ĐẦU3PHẦN 1: THỰC HIỆN ĐỀ TÀI3CHƯƠNG I: PHÂN TÍCH VÀ THIẾT KẾ BÀI TOÁN4CHƯƠNG II: CÀI ĐẶT TRUY XUẤT CƠ SỞ DỮ LIỆU TRONG SQL SERVER 20085I.Tạo cơ sở dữ liệu51.Tạo database52.Nhập dữ liệu vào bảng (dùng lệnh INSERT INTO)93.Mô hình quan hệ cơ sở dữ liệu12II.Các lệnh, thủ tục truy xuất dữ liệu131.Xây dựng khung nhìn VIEW132.Thủ tục lưu trữ163.Trigger194.Giao tác205.Phân quyền22PHẦN 2: BÀI TẬP BẮT BUỘC24KẾT LUẬN57Tài liệu tham khảo57

Trường ĐH Công Nghiệp Hà Nội Khoa CNTT TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN -o0o - BÁO CÁO BÀI TẬP LỚN MÔN: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ĐỀ TÀI: XD phần mềm quản lý hệ thống bán hàng siêu thị bán lẻ Giảng viên hướng dẫn: Phan Văn Viên Lớp: HTTT1 – K6 Nhóm: 13 STT Họ tên Trần Tuấn Anh Đ1 Lê Thị Thúy Hoài Đỗ Thanh Huyền Nguyễn Thị Nhật Lệ Lộc Thị Uyên Hà Nội 12-2012 K6_HTTT1_Nhóm 13 Trang Đ2 Đ3 Đ4 KL Trường ĐH Công Nghiệp Hà Nội Khoa CNTT Mục lục LỜI NÓI ĐẦU Quản lý cửa hàng, công ty, hay siêu thị công việc phức tạp khó khăn quản lý tay Chính vậy, công nghệ thông tin với công cụ thích hợp, phát triển, xây dựng để hỗ trợ cho công tác quản lý Các công cụ phát triển để hỗ trợ quản lý phía sở liệu có SQL Server 2008, My SQL, Access, Từ sở liệu xây dựng hệ quản trị sở liệu trên, ta dễ dàng quản lý vấn đề đặt cho kế toán, quản lý cửa hàng doanh nghiệp dựa công cụ có sẵn hệ quản trị sở liệu, sử dụng ngôn ngữ lập trình khác VB, C#, VB.NET,… để sử dụng sở liệu Hệ quản trị sở liệu SQL Server 2008 hệ quản trị sở liệu hãng Microsoft phát triển Phiên phiên phổ biến, sử dụng nhiều hệ thống quản lý Chính vậy, với đề tài giao, hệ quản trị sở liệu SQL Server công cụ thích hợp hợp lý Đề tài quản lí chúng em : “Quản lí hệ thống bán hàng siêu thị bán lẻ” Với đề tài nhóm 13 chúng em chủ yếu nghiên cứu việc bán hàng siêu thị bán lẻ kết hợp với hàm thủ tục, trigger, phân quyền cho người dùng để tiến hành quản lí siêu thị hợp lí K6_HTTT1_Nhóm 13 Trang Trường ĐH Công Nghiệp Hà Nội Khoa CNTT PHẦN 1: THỰC HIỆN ĐỀ TÀI CHƯƠNG I: PHÂN TÍCH VÀ THIẾT KẾ BÀI TOÁN Hiện có nhiều hệ thống siêu thị vừa nhỏ, với nhiều loại mặt hàng siêu thị Thành siêu thị bán lẻ loại mặt hàng dân dụng Vấn đề đặt đổi với nhà quản lí siêu thị để quản lí hệ thống bán hàng siêu thị cách tốt Người ta xây dựng, tổ chức hệ thống thông tin để theo dõi, quản lí hàng hóa phục vụ việc mua hàng khách hàng (ở xét toán quản lí hàng hóa bán hàng) Qua việc tìm hiểu tài liệu thông tin mạng thấy có nhiều cách để quản lí việc mua bán siêu thị bán lẻ, với công cụ đắc lực SQL SERVER 2008 sử dụng phổ biến giúp cho quản lí công việc bán hàng cách có hệ thống, bảo mật chặt chẽ Trong toán xây dựng thiết kế phần mềm quản lý hệ thống bán hàng siêu thị bán lẻ này, chúng em xây dựng mô hình sở liệu Quản lý Siêu thị (QLST) quản lý thông tin khách hàng, nhân viên, mặt hàng hóa đơn hàng khách hàng Cơ sở liệu QLST gồm bảng đưa thông tin mặt hàng, nhà cung cấp, khách hàng, nhân viên, hóa đơn hàng, thông tin mặt hàng nhập K6_HTTT1_Nhóm 13 Trang Trường ĐH Công Nghiệp Hà Nội Khoa CNTT CHƯƠNG II: CÀI ĐẶT TRUY XUẤT CƠ SỞ DỮ LIỆU TRONG SQL SERVER 2008 Từ trình phân tích thiết kế toán ta tiến hành thực SQl Server 2008 I Tạo sở liệu Tạo database: USE master GO IF EXISTS (select * from SYSDATABASES where name='QLST') DROP database QLSieuThi GO create database QLST on (name=QLST, Filename='C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\QLST.mdf', size=50mb, maxsize=200mb, filegrowth=10mb) log on (name=QLST_log, filename='C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\QLST_Data.mdf', size=10mb, maxsize=unlimited, filegrowth=10mb) GO − Tạo bảng: Để quản lí xây dựng sở liệu gồm bảng sau: USE QLST GO tạo bảng nhà cung cấp (nhacc)-create table nhacc( manhacc nvarchar(5) PRIMARY KEY, tennhacc nvarchar(100) NOT NULL, K6_HTTT1_Nhóm 13 Trang Trường ĐH Công Nghiệp Hà Nội Khoa CNTT diachi nvarchar(200) NOT NULL, dienthoai nvarchar(20) NOT NULL ) tạo bảng hàng hóa (hanghoa)-create table hanghoa( mahang nvarchar(5) PRIMARY KEY, tenhang nvarchar(100) NOT NULL, manhacc nvarchar(5) not null, dvtinh nvarchar(10) NOT NULL, giahang money not null, khuyenmai real not null, foreign key(manhacc) references nhacc(manhacc) ) tạo bảng khách hàng(khachhang)-create table khachhang( makh nvarchar(5) primary key, tenkh nvarchar(50) not null, diachi nvarchar(100) not null, dienthoai nvarchar(20) not null ) tạo bảng nhân viên (nhanvien)-create table nhanvien( manv nvarchar(5) primary key, tennv nvarchar(50) not null, ngaysinh datetime not null, diachi nvarchar(100) not null, dienthoai nvarchar(20) not null, luong money not null ) tạo bảng hóa đơn (hoadon)-create table hoadon( mahd nvarchar(5) PRIMARY KEY, ngayhd datetime NOT NULL, makh nvarchar(5) NOT NULL, manv nvarchar(5) NOT NULL, foreign key(makh) references khachhang(makh), foreign key(manv) references nhanvien(manv) ) K6_HTTT1_Nhóm 13 Trang Trường ĐH Công Nghiệp Hà Nội Khoa CNTT tạo bảng chi tiết hóa đơn (cthoadon)-create table cthoadon( mahd nvarchar(5), mahang nvarchar(5), soluong smallint NOT NULL, dongia money not null, primary key(mahd,mahang), foreign key (mahd) references hoadon(mahd), foreign key(mahang) references hanghoa(mahang) ) tạo bảng phiếu nhập (pnhap)-create table pnhap( mapn nvarchar(5) PRIMARY KEY, ngaynhap datetime NOT NULL, mahd nvarchar(5), foreign key(mahd) references hoadon(mahd) ) tạo bảng chi tiết phiếu nhập (ctpnhap)-create table ctpnhap( mapn nvarchar(5), mahang nvarchar(5), slnhap smallint NOT NULL, dgnhap money not null, PRIMARY KEY (mapn,mahang), foreign key (mapn) references pnhap(mapn), foreign key(mahang) references hanghoa(mahang) ) GO Sau chạy câu lệnh, ta bảng sau: a) Bảng nhà cung cấp (nhacc): K6_HTTT1_Nhóm 13 Trang Trường ĐH Công Nghiệp Hà Nội b) Bảng hànghóa (hanghoa): c) Bảng khách hàng (khachhang): d) Bảng nhân viên (nhanvien): e) Bảng hóa đơn (hoadon): f) Bảng chi tiết hóa đơn (cthoadon): K6_HTTT1_Nhóm 13 Khoa CNTT Trang Trường ĐH Công Nghiệp Hà Nội Khoa CNTT g) Bảng phiếu nhập (pnhap): h) Bảng chi tiết phiếu nhập (ctpnhap): Nhập liệu vào bảng (dùng lệnh INSERT INTO): USE QLST GO INSERT INTO nhacc VALUES ('CC01','Pham Nguyen','Quan 12 - HCM','0835926885'), ('CC02','Trang Tien','Đong Đa - Ha Noi','0436462740'), ('CC03','Ngoi Sao','Tu Liem - Ha Noi','0462656566'), ('CC04','MASAN Group','Tan Phu - HCM','0438247773') INSERT INTO hanghoa VALUES ('TL100','Tra lai Tam Chau 100g','CC01','Hop','26900','0'), ('KS150','Keo sua Caramen 150g','CC02','Goi','29500','0'), ('BG195','Banh gau Koala 195g','CC03','Hop','50200','0'), ('NT500','Nuoc tuong Tam Thai Tu 500ml','CC04','Chai','20000','0'), ('TC50','Tra Thai Nguyen Cozy 50g','CC01','Hop','25700','0'), ('NM250','Nuoc mam Chinsu 250ml','CC04','Chai','18500','0') K6_HTTT1_Nhóm 13 Trang Trường ĐH Công Nghiệp Hà Nội Khoa CNTT INSERT INTO khachhang VALUES ('KH01','Tran Van An','Go Vap - HCM','92857295'), ('KH02','Le My Le','Cau Giay - Ha Noi','57395799'), ('KH03','Nguyen Nhu Ngoc','Tay Ho - Ha Noi','29572935'), ('KH04','Hoang Quoc Dat','Quan - HCM','94728947') INSERT INTO nhanvien VALUES ('NV01','Nguyen Thi Nga','1989-02-18','Binh Thanh HCM','56285695','5000000'), ('NV02','Pham Thi Linh','1988-07-11','Hai Ba Trung - Ha Noi','52652593','7000000'), ('NV03','Le Ngoc Mai','1989-10-22','Kim Ma - Ha Noi','37598589','7000000'), ('NV04','Tran Mai Chi','1988-01-13','Quan HCM','95789295','5000000') INSERT INTO hoadon VALUES ('D01','2000-01-02','KH01','NV04'), ('D02','2000-02-05','KH04','NV01'), ('D03','2000-02-01','KH03','NV02'), ('D04','2000-01-06','KH02','NV01') INSERT INTO cthoadon VALUES ('D03','BG195','5','50200'), ('D01','NT500','3','20000'), ('D02','TC50','10','25700'), ('D04','KS150','8','29500') INSERT INTO pnhap VALUES ('N01','2000-02-01','D01'), ('N02','2000-01-08','D04'), ('N03','2000-02-02','D03'), ('N04','2000-01-06','D01') INSERT INTO ctpnhap VALUES ('N01','NT500','500','19500'), ('N03','BG195','100','50000'), ('N02','KS150','150','29000'), ('N04','NT500','500','19500') GO Sau chạy cậu lệnh có thông tin chi tiết bảng sau: Các thông tin bảng nhà cung cấp: K6_HTTT1_Nhóm 13 Trang Trường ĐH Công Nghiệp Hà Nội Khoa CNTT • Các thông tin bảng hàng hóa: • Các thông tin bảng khách hàng: • Các thông tin bảng nhân viên: • Các thông tin bảng hóa đơn: K6_HTTT1_Nhóm 13 Trang 10 Trường ĐH Công Nghiệp Hà Nội Khoa CNTT WHEN slxuat >20 THEN dgxuat * 0.8 END FROM ctpxuat INNER JOIN pxuat ON ctpxuat.sopx=pxuat.sopx WHERE CONVERT(char(7),ngayxuat,21)='2002-01' Bài 5: Thủ tục nội Bài 5.1: Tạo thủ tục nội tính toán 5.1a) Xây dựng thủ tục với tên spud_dondh_tinhsldat, tham số vào là: số đặt hàng mã vật tư; tham số là: số lượng đặt hàng vật tư create proc spud_dondh_tinhsldat @smavtu char(4), @ssodh char (10), @nsldat int output as declare @serrsmg varchar(200) if not exists (select sodh from ctdondh where sodh=@ssodh and mavtu=@smavtu) begin print 'xin xem lại số đặt hàng ,mã vật tư !' return end select sldat from ctdondh where sodh=@ssodh and mavtu=@smavtu go create proc spud_tinhsldat @ssodh char(4), @smavtu char(4) as declare @nsldathang int exec spud_tinhsldat @ssodh='D001',@smavtu='DD01',@nsldat=@nsldathang output print'đơn đặt hàng d001 với vật tư bg02' print 'có số lượng đặt là:'+cast(@nsldathang as varchar(10)) go 5.1b) Xây dựng thủ tục tính tổng số lượng nhập hàng với tên spud_pnhap_tinhtongslnhap có tham số vào số phiếu nhập mã vật tư, tham số tổng số lượng nhập với phiếu nhập hàng N001 vật tư DD01 K6_HTTT1_Nhóm 13 Trang 42 Trường ĐH Công Nghiệp Hà Nội Khoa CNTT create proc spud_pnhap_tinhtongslnhap @ssopn varchar(4), @smavtu nvarchar(4), @nslnhap int output as declare @ntongslnhap int if not exists (select sopn ,mavtu from ctpnhap where sopn =@ssopn mavtu=@smavtu) begin print 'xem lại số phiếu nhập, mã vật tư ' return end select @nslnhap=slnhap from ctpnhap where (sopn=@ssopn and mavtu=@smavtu) go print 'phiếu nhập hàng N001 với vật tư DD01' print 'có tổng số lượng nhập là: ' go and 5.1c) Tính số lượng tồn kho cuối kỳ vật tư với tên spud_tonkho_tinhslcuoi có tham số vào là: namthang mavtu, tham số số lượng cuối kỳ create proc spud_tonkho_tinhslcuoi @snamthang varchar(6), @smavtu varchar(4), @slcuoiki int output as declare @nslcuoi int if not exists (select namthang,mavtu,slcuoi from tonkho where namthang=@snamthang and mavtu=@smavtu and slcuoi=@nslcuoi) begin print 'xem lại năm tháng, mã vật tư ' return end select @nslcuoi=slcuoi from tonkho where namthang=@snamthang and mavtu=@smavtu go print 'năm tháng 200201 với vật tư VD02' K6_HTTT1_Nhóm 13 Trang 43 Trường ĐH Công Nghiệp Hà Nội Khoa CNTT print 'có số lượng cuối :' go 5.2a) Xây dựng thủ tục thêm vào bảng vattu với điều kiện mã vật tư phải create proc spud_vattu_them (@mavtu char(4), @tenvtu nvarchar(100), @dvtinh nvarchar(10), @phantram real) as if exists (select * from vattu where mavtu = @mavtu) print 'Ma vat tu phai chua co bang vat tu' else insert into vattu values(@mavtu, @tenvtu, @dvtinh, @phantram) exec spud_vattu_them 'DD03','Đầu DVD Hitachi đĩa','Bộ','20' 5.2c) Xây dựng thủ tục sửa đổi vật tư bảng vattu Trong thủ tục thực lệnh UPDATE SET để cập nhật liệu bảng vattu create proc spud_vattu_sua @smavtu char (4), @stenvatu varchar(50), @sdvtinh char(4), @nphantram int as declare @serrsmg varchar(200) if exists (select mavtu from vattu where mavtu=@smavtu) begin set @serrsmg ='mã vật tư['+@smavtu+']đã có,xin sửa lại' raiserror (@serrsmg,16,1) return end update mavtu set hoahong =null go update mavtu set hoahong=(select mavtu from vattu ) go K6_HTTT1_Nhóm 13 Trang 44 Trường ĐH Công Nghiệp Hà Nội Khoa CNTT 5.3b) Xây dựng thủ tục hiển thị liệu cho báo cáo đơn đặt hàng bao gồm thông tin bảng dondh, ctdondh, vattu, nhacc Thủ tục có tham số vào số đặt hàng dùng để lọc liệu báo cáo theo đơn đặt hàng, nhiên gọi thủ tục không truyền vào coi hiển thị tất bảng dondh create proc spud_dondh_baocaodondh @ssodh char(4)=null as set nocount on if @ssodh is null select dh.*,ct.mavtu, tenvtu, sldat, tennhacc from dondh as dh inner join ctdondh as ct on ct.sodh=dh.sodh inner join nhacc as ncc on ncc.manhacc=dh.manhacc inner join vattu as vt on vt.mavtu=ct.mavtu order by ct.sodh ,ct.mavtu else select dh.*,ct.mavtu,tenvtu,sldat,tennhacc from dondh dh inner join ctdondh ct on ct.sodh=dh.sodh inner join nhacc ncc on ncc.manhacc=dh.manhacc inner join vattu vt on vt.mavtu=ct.mavtu where ct.sodh=@ssodh order by mavtu go exec spud_dondh_baocaodondh 'D001' Bài 5.4: Trong CSDL quản lí bán hàng, tạo thủ tục nội 5.4a) Xây dựng thủ tục thêm liệu vào bảng dondh với tên spud_dondh _them gồm có tham số vào giá trị thêm cho cột bảng dondh create proc spud_dondh_them @ssodh char(4), @sngaydh char(6), @smanhacc char(3) as declare @serrmsg varchar(200) if exists (select sodh from dondh where sodh=@ssodh) begin K6_HTTT1_Nhóm 13 Trang 45 Trường ĐH Công Nghiệp Hà Nội Khoa CNTT set @serrmsg ='số đơn hàng ['+@ssodh+']đã có ,xin cấp đơn khác' raiserror(@serrmsg,16,1) return end insert into dondh(sodh,ngaydh,manhacc) values(@ssodh,@sngaydh,@smanhacc) go 5.4b) Xây dựng thủ tục xóa dondh, cần kiểm tra ràng buộc liệu trước thực lệnh delete bảng dondh, sodh chưa có bảng dondh create proc spud_dondh_xoa @ssodh char (4) as declare @serrsmg varchar(200) if not exists(select sodh from dondh where sodh=@ssodh) begin set @serrsmg='số đơn hàng ['+@ssodh+']chưa có,xin xóa' raiserror(@serrsmg,16,1) return end delete sodh from dondh go 5.4d) Xây dựng thủ thêm liệu vào bảng ctdondh, cần kiểm tra hạng mục liệu trước thực lệnh insert into để thêm liệu vào bảng ctdondh create proc spud_ctdondh_them @ssodh char(4), @smavtu char(4), @nsldat int as declare @serrsmg varchar(200) if not exists (select sodh,mavtu from ctdondh where sodh=@ssodh and mavtu=@smavtu) begin set @serrsmg ='số đơn hàng,mã vật tư ['+@ssodh+@smavtu+']chưa có,xin thêm đơn khác,mã khác' K6_HTTT1_Nhóm 13 Trang 46 Trường ĐH Công Nghiệp Hà Nội Khoa CNTT raiserror (@serrsmg,16,2) return end insert into ctdondh(sodh,mavtu,sldat) values(@ssodh,@smavtu,@nsldat) go Bài 6: Hàm người dùng định nghĩa Bài 6.1: Xây dựng hàm đơn trị: 6.1a) Fn_TongNhapThang(@mavtu) trả tổng số lượng nhập tháng vật tư use QLBanHang go create function Fn_TongNhapThang(@mavtu char(4)) returns int as begin declare @Tong int select @Tong = tongsln from tonkho where mavtu = @mavtu return @Tong end 6.1b) Fn_TongXuatThang(@mavtu) trả tổng số lượng xuất tháng vật tư go create function Fn_TongXuatThang(@mavtu char(4)) returns int as begin declare @Tong int select @Tong = tongslx from tonkho where mavtu = @mavtu return @Tong end 6.1c) Fn_TongNhap(@sodh, @mavtu) trả tổng số lượng nhập vật tư theo số đặt hàng go K6_HTTT1_Nhóm 13 Trang 47 Trường ĐH Công Nghiệp Hà Nội Khoa CNTT create function Fn_TongNhap(@sodh char(4), @mavtu char(4)) returns int as begin declare @Tong int select @Tong = sum(slnhap) from ctpnhap inner join pnhap on pnhap.sopn = ctpnhap.sopn where mavtu = @mavtu and sodh = @sodh return @Tong end 6.1d) Sử dụng hàm Fn_ConNhap(@sodh,@mavtu) trả số lượng nhập vật tư theo số đặt hàng go create function Fn_ConNhap(@sodh char(4), @mavtu char(4)) returns int as begin declare @Con int declare @Dat int select @Dat = sldat from ctdondh where mavtu = @mavtu and sodh = @sodh set @Con = @Dat - dbo.Fn_TongNhap(@sodh, @mavtu) return @Con end 6.1e) Fn_Ton(@mavtu, @namthang) trả số lượng tồn vật tư theo năm tháng go create function Fn_Ton(@mavtu char(4), @namthang char(6)) returns int as begin declare @Ton int select @Ton = slcuoi from tonkho where mavtu = @mavtu and namthang = @namthang return @Ton end go K6_HTTT1_Nhóm 13 Trang 48 Trường ĐH Công Nghiệp Hà Nội Khoa CNTT Bài 6.2: Xây dựng hàm đọc bảng: 6.2a) Dùng hàm fn_connhap tạo để viết hàm fn_ds_vattutonkho create function fn_ds_vattutonkho (declare @namthang char(6) declare @toithieu int return @tonkho table (mavtu char(4) tenvtu varchar(100), tonkho int)) as begin insert into @tonkho select tonkho.mavtu,mavtu.tenvtu,slcuoi from vattu innerjoin tonkho vattu.mavtu=tonkho mavtu where namthang=@namthang and slcuoi>=@toithieu return end go on 6.2b) Fn_DS_VatTuTonKho(@namthang char(10),@toithieu int) liệt kê danh sách vật tư @namthang với số lượng tồn kho tối thiểu @toithieu Create Function Fn_DS_VatTuTonKho (@namthang char(10),@toithieu int) returns Table as Return(Select * From tonkho Where (namthang=@namthang) And (slcuoi >=@toithieu)) Select * from Dbo.Fn_DS_VatTuTonKho('200201',10) Bài 7: TRIGGER Bài 7.1: Tạo trigger thêm liệu để kiểm tra ràng buộc liệu 7.1a) Tạo trigger tg_pnhap_them kiểm tra ngày nhập phải sau ngày đặt hàng use QLBanHang go create trigger tg_pnhap_them on pnhap K6_HTTT1_Nhóm 13 Trang 49 Trường ĐH Công Nghiệp Hà Nội Khoa CNTT after insert as declare @ngaydh datetime, @serrmsg char(20) declare @ngaynhap datetime if @ngaynhap>(select ngaynhap from inserted) rollback tran 7.1b) Tạo trigger tg_ctpnhap_them kiểm tra số lượng nhập hàng[...]...Trường ĐH Công Nghiệp Hà Nội Khoa CNTT • Các thông tin trong bảng chi tiết hóa đơn: • Các thông tin trong bảng phiếu nhập: • Các thông tin trong bảng chi tiết phiếu nhập: 3 Mô hình quan hệ cơ sở dữ liệu Hình 1: Mô hình quan hệ cơ sở dữ liệu QLSieuThi K6_HTTT1_Nhóm 13 Trang 11 Trường ĐH Công Nghiệp Hà Nội II Các lệnh, thủ tục truy 1 Xây dựng khung nhìn VIEW Khoa CNTT xuất dữ liệu Một khung nhìn... bảng ảo trong cơ sở dữ liệu có nội dung được định nghĩa thông qua một truy vấn (câu lệnh SELECT) Dưới đây là một số cậu lệnh minh họa cho view: a) Tạo view vw_hanghoa gồm mã hàng, tên hàng liệt kê danh sách các mặt hàng trong bảng hanghoa USE QLST GO create view vw_hanghoa AS SELECT mahang, tenhang from hanghoa GO Sau khi chạy view ta dc bảng sau: b) Tạo view vw_tt_hanghoa thống kê những mặt hàng nào... mahang, tenhang from hanghoa where not exists (select mahang from cthoadon where mahang=hanghoa.mahang) GO Những mặt hàng chưa được mua: K6_HTTT1_Nhóm 13 Trang 12 Trường ĐH Công Nghiệp Hà Nội c) Khoa CNTT Tạo view vw_thongke thống kê trong năm 2000, mỗi mặt hàng trong mỗi tháng và trong cả năm bán được với số lượng bao nhiêu USE QLST GO create view vw_thongke as select b.mahang, tenhang, SUM(case MONTH(ngayhd)... b.mahang=c.mahang where YEAR(ngayhd)=2000 GROUP BY b.mahang, tenhang GO K6_HTTT1_Nhóm 13 Trang 13 Trường ĐH Công Nghiệp Hà Nội Khoa CNTT Thống kê hàng hóa: d) Tạo view vw_thongke_nhanvien cho biết nhân viên nào của công ty bán được số lượng hàng nhiều nhất và số lượng hàng bán được của những nhân viên này là bao nhiêu USE QLST GO create view vw_thongke_nhanvien as select nhanvien.manv, tennv, SUM(soluong)... cấp trong bảng nhacc có địa chỉ ở quận 1 HCM, sắp xếp dữ liệu theo họ tên tăng dần use QLBanHang SELECT * FROM nhacc WHERE diachi LIKE '%Q1 HCM' ORDER BY tennhacc ASC 4.1c) Hiển thị danh sách các thông tin trong bảng ctpnhap có thêm cột thanhtien use QLBanHang SELECT *, (slnhap*dgnhap) AS thanhtien FROM ctpnhap 4.1d) Hiển thị danh sách các manhacc, tennhacc không trùng lặp dữ liệu đã đặt hàng trong. .. nhacc.manhacc=dondh.manhacc 4.1e) Hiển thị danh sách các đơn đặt hàng gần đây nhất trong bảng DONDH SELECT * FROM dondh WHERE ngaydh=(SELECT MAX(ngaydh) FROM dondh) 4.1f) Hiển thị danh sách các phiếu xuất hàng gồm các cột: sopx, tongtg sắp xếp theo thứ tự tổng trị giá giảm dần SELECT sopx, (slxuat*dgxuat) AS tongtg FROM ctpxuat ORDER BY tongtg DESC 4.1g) Hiển thị danh sách các vật tư và tổng số lượng... (select mahang from hanghoa where mahang=@smahang) begin set @serrsmg='mã hàng ['+@smahang+']đã có ,xin sửa mã ' raiserror(@serrsmg, 16,1) return end update mahang set hoahong=null update mahang set hoahong=(select mahang from hanghoa ) go e) Xây dựng thủ tục hiển thị dữ liệu cho báo cáo hóa đơn Các thông tin trên báo cáo bao gồm các cột trong bảng hoadon, cthoadon, hanghoa, nhacc Thủ tục có các tham số để... là một đối tượng gắn liến với một bảng và được tự động kích hoạt khi xảy ra những giao tác làm thay đổi dữ liệu trong bảng Sử dụng trigger một cách hợp lý trong cơ sở dữ liệu sẽ có tác động rất lớn trong việc tăng hiệu năng của cơ sở dữ liệu a) Tạo trigger tg_hanghoa_del thực hiện xóa mahang trong bảng hanghoa use QLST go create trigger tg_hanghoa_del on hanghoa for delete as begin declare @serrmsg char(200),... dondh_danhapdu gồm: số đặt hàng, đã nhập đủ có 2 giá trị là"đã nhập đủ" nếu đơn đặt hàng đã nhập đủ hoặc "chưa nhập đủ" nếu đơn đặt hàng chưa nhập đủ CREATE VIEW dondh_danhapdu(sodh,da_nhap_du) AS SELECT sodh,(case when tong_sldat>tongsln then 'chua nhap du' else 'da nhap du' end)as da_nhap_du from tongsldatnhap 2.7d) Tạo view vw_tongnhap để thống kê số lượng nhập của vật tư trong từng năm tháng tương... @serrsmg ='tên hàng, tổng số lượng nhập ['+@stenhang+@nsoluong+'] đã có,xin cấp một tên khác,số lượng nhập khác' raiserror (@serrsmg ,16,2) return end insert cthoadon.hanghoa(mahang,tenhang,soluong) values(@smahang,@stenhang,@nsoluong) go GO c) Xây dựng thủ tục nội tại thêm mới dữ liệu vào bảng nhacc Trong đó phải kiểm tra các ràng buộc trước khi thực hiện lệnh insert into manhacc phải có trong bảng nhacc

Ngày đăng: 19/04/2016, 22:40

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

  • PHẦN 1: THỰC HIỆN ĐỀ TÀI

    • CHƯƠNG I: PHÂN TÍCH VÀ THIẾT KẾ BÀI TOÁN

    • CHƯƠNG II: CÀI ĐẶT TRUY XUẤT CƠ SỞ DỮ LIỆU

    • TRONG SQL SERVER 2008

      • I. Tạo cơ sở dữ liệu

        • 1. Tạo database:

        • 2. Nhập dữ liệu vào bảng (dùng lệnh INSERT INTO):

        • 3. Mô hình quan hệ cơ sở dữ liệu

        • II. Các lệnh, thủ tục truy xuất dữ liệu

          • 1. Xây dựng khung nhìn VIEW

          • 2. Thủ tục lưu trữ

          • 3. Trigger

          • GO

          • 4. Giao tác

          • 5. Phân quyền

          • PHẦN 2: BÀI TẬP BẮT BUỘC

          • GO

          • Các bảng đã có sau khi chạy các câu lệnh:

          • KẾT LUẬN

          • Tài liệu tham khảo

Tài liệu cùng người dùng

Tài liệu liên quan