Ngày nay xã hội phát triển không ngừng nhanh chóng, xã hội càng phát triển thì thông tin càng to lớn dồi dào, phong phú và đa dạng. Thông tin thực sự trở thành nguồn tài nguyên vô cùng quý giá trong đời sống khoa học kỹ thuật, kinh doanh cũng như mọi hoạt động khác của xã hội. Những ứng dụng tin học đã trợ giúp con người sản xuất hiệu quả thúc đẩy các tiến trình làm việc được nhanh chóng. Khi lượng thông tin gia tăng thì nhu cầu của việc quản lý, tổ chức và xử lý thông tin có một ý nghĩa quan trọng đối với những người lãnh đạo. Trước những nhu cầu như vậy thì việc lưu trữ và xử lý thông tin bằng phương pháp thủ công và sổ tay truyền thống không còn phù hợp nữa. Chính vì vậy vấn đề quan trọng đựơc đặt ra là làm thế nào để khai thác nhanh, chính xác và hiệu quả lượng thông tin quý giá đó chỉ có máy tính là cộng cụ điện tử cho phép xử lý nhanh chóng các nhu cầu khác nhau, sản phẩm của nó được ứng dụng rộng rãi trong thực tiễn.
Tin học thực sự trở là một ngành khoa học về các quá trình thu thập xử lý và lưu trữ thông tin một cách có hiệu quả nhất, ý thức được vai trò và ý nghĩa quan trọng đó nên trong lần làm báo cáo bài tập lớn môn Đồ án Cơ sở dữ liệu này nhóm xin được ứng dụng tin học vào công tác quản lý đĩa của cửa hàng bán đĩa Heaven. Thực hiện hình thức quản lý bán đĩa một cách khoa học và hiệu quả, tiết kiệm chi phí cho cửa hàng cũng như đem lại sự thoải mái nhất cho khách hàng khi mua hàng.
1. Mục đích, ý nghĩa của báo cáo:
Nghiên cứu, phân tích hệ thống quản lý đĩa nhằm xây dựng Cơ sở dữ liệu quản lý xuất nhập đĩa cho các cửa hàng vừa và nhỏ, áp dụng cho Cửa hàng đĩa Heaven.
Xây dựng Cơ sở dữ liệu cho chương trình quản lý bán đĩa, qua đó rút ra các kinh nghiệm thực tiễn để xây dựng các chương trình quản lý bán hàng nói chung và quản lý cửa hàng đĩa nói riêng và mang ý nghĩa thực tiễn.
2. Đối tượng và phạm vi nghiên cứu:
Đối tượng nghiên cứu gồm:
• Các loại đĩa, hiểu phương thức phân loại đĩa.
• Các hoá đơn nhập xuất.
Phạm vi nghiên cứu: trong một cửa hàng bán đĩa cụ thể.
3. Kết cấu và nội dung của báo cáo
- Tên báo cáo.
- Báo cáo gồm:
• Mở đầu
• Chương I: Khảo sát hệ thống.
• Chương II: Mô hình thực thể liên kết E-R và Mô hình quan hệ.
• Chương III: Cơ sở dữ liệu SQL Server 2005.
• Kết luận.
• Phụ lục.
34 trang |
Chia sẻ: ngtr9097 | Lượt xem: 2033 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Báo cáo Xây dựng Cơ sở dữ liệu quản lý xuất nhập đĩa cho các cửa hàng vừa và nhỏ, áp dụng cho Cửa hàng đĩa Heaven, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MỤC LỤC
MỞ ĐẦU
Ngày nay xã hội phát triển không ngừng nhanh chóng, xã hội càng phát triển thì thông tin càng to lớn dồi dào, phong phú và đa dạng. Thông tin thực sự trở thành nguồn tài nguyên vô cùng quý giá trong đời sống khoa học kỹ thuật, kinh doanh cũng như mọi hoạt động khác của xã hội. Những ứng dụng tin học đã trợ giúp con người sản xuất hiệu quả thúc đẩy các tiến trình làm việc được nhanh chóng. Khi lượng thông tin gia tăng thì nhu cầu của việc quản lý, tổ chức và xử lý thông tin có một ý nghĩa quan trọng đối với những người lãnh đạo. Trước những nhu cầu như vậy thì việc lưu trữ và xử lý thông tin bằng phương pháp thủ công và sổ tay truyền thống không còn phù hợp nữa. Chính vì vậy vấn đề quan trọng đựơc đặt ra là làm thế nào để khai thác nhanh, chính xác và hiệu quả lượng thông tin quý giá đó chỉ có máy tính là cộng cụ điện tử cho phép xử lý nhanh chóng các nhu cầu khác nhau, sản phẩm của nó được ứng dụng rộng rãi trong thực tiễn.
Tin học thực sự trở là một ngành khoa học về các quá trình thu thập xử lý và lưu trữ thông tin một cách có hiệu quả nhất, ý thức được vai trò và ý nghĩa quan trọng đó nên trong lần làm báo cáo bài tập lớn môn Đồ án Cơ sở dữ liệu này nhóm xin được ứng dụng tin học vào công tác quản lý đĩa của cửa hàng bán đĩa Heaven. Thực hiện hình thức quản lý bán đĩa một cách khoa học và hiệu quả, tiết kiệm chi phí cho cửa hàng cũng như đem lại sự thoải mái nhất cho khách hàng khi mua hàng.
1. Mục đích, ý nghĩa của báo cáo:
Nghiên cứu, phân tích hệ thống quản lý đĩa nhằm xây dựng Cơ sở dữ liệu quản lý xuất nhập đĩa cho các cửa hàng vừa và nhỏ, áp dụng cho Cửa hàng đĩa Heaven.
Xây dựng Cơ sở dữ liệu cho chương trình quản lý bán đĩa, qua đó rút ra các kinh nghiệm thực tiễn để xây dựng các chương trình quản lý bán hàng nói chung và quản lý cửa hàng đĩa nói riêng và mang ý nghĩa thực tiễn.
2. Đối tượng và phạm vi nghiên cứu:
Đối tượng nghiên cứu gồm:
Các loại đĩa, hiểu phương thức phân loại đĩa.
Các hoá đơn nhập xuất.
Phạm vi nghiên cứu: trong một cửa hàng bán đĩa cụ thể.
3. Kết cấu và nội dung của báo cáo
Tên báo cáo.
Báo cáo gồm:
Mở đầu
Chương I: Khảo sát hệ thống.
Chương II: Mô hình thực thể liên kết E-R và Mô hình quan hệ.
Chương III: Cơ sở dữ liệu SQL Server 2005.
Kết luận.
Phụ lục.
4. Những thuật ngữ và cụm từ viết tắt
STT
Cụm từ viết tắt
Thuật ngữ
Viết đầy đủ
Ý nghĩa
1
CSDL
Cơ sở dữ liệu
2
E-R
Entity Relationship
Mô hình thực thể liên kết
3
PK
Primary Key
Khoá chính
4
FK
Foreign Key
Khoá ngoại
CHƯƠNG I: KHẢO SÁT HỆ THỐNG
I. MÔ TẢ HỆ THỐNG
1) Tổng quan
Cửa hàng sẽ phân chia đĩa theo thể loại và đánh mã số tuỳ theo thể loại đã được phân chia. Mỗi đĩa sẽ có các thông tin chính: Mã đĩa, Tên đĩa, Thể loại, Hệ máy.
Về công việc nhập xuất hàng, cửa hàng sẽ nhập đĩa theo từng đợt và đưa ra các hoá đơn nhập hàng cụ thể. Đối với bán hàng được chia thành 2 phương thức nhưng vẫn cùng một loại hoá đơn xuất hàng như nhau. Trong các hoá đơn sẽ có các thông tin cơ bản về khách hàng và thông tin đĩa sẽ bán.
Chủ cửa hàng sẽ có thể thống kê một cách cụ thể doanh thu, số lượng,… bất kỳ lúc nào theo mong muốn và theo dõi thông tin bán hàng của nhân viên.
2) Quy trình xử lý
2.1. Phân loại đĩa
Đĩa trò chơi dành cho các thể loại máy khác nhau được đánh mã theo thể loại bao gồm:
Đĩa PC: dành để cài đặt cho các máy vi tính cá nhân.
Đĩa PS2: dành cho dòng máy PlayStation 2 của Sony.
Đĩa Xbox: dành cho dòng máy Xbox 360, Xbox Live của Microsoft.
Đĩa Wii: dành cho dòng máy Wii của Nintendo.
Đĩa phần mềm gồm các phiên bản hệ điều hành và các phần mềm thông dụng được đánh mã S+Tên thể loại bao gồm:
Đĩa hệ điều hành: gồm các phiên bản hệ điều hành Windows từ Windows 98 đến Windows 7 và các phiên bản Linux ít phổ thông: Fedora, Ubuntu,…
Đĩa phần mềm tiện ích: gồm các đĩa phần mềm tiện ích khối văn phòng như bộ Microsoft Office, HTKK Thuế,… và các phần mềm chuyên dụng phục vụ khối thiết kế như Adobe Photoshop, AutoCAD, CorelDRAW,…
Ngoài ra gồm các đĩa phần mềm phổ thông khác.
2.2. Phương thức triển khai hoá đơn
Coi đối tượng khách hàng vừa là nguồn nhập hàng, vừa là khách mua hàng.
Hoá đơn được triển khai làm 2 loại chính: Nhập hàng và Xuất hàng.
2.3. Mục tiêu của cơ sở dữ liệu
Đầy đủ các chức năng cơ bản để nhập xuất dữ liệu cho từng bảng.
Thực hiện thêm các yêu cầu quản lý như: thống kê, báo cáo,... theo yêu cầu của công việc kinh doanh.
2.4. Một số mẫu biểu
Qua quá trình khảo sát trên, tại cửa hàng đĩa Heaven có các mẫu biểu sau:
Đơn đặt hàng:
Cửa hàng đĩa Heaven
Địa chỉ: 668 đường Láng - Đống Đa - Hà Nội
Điện thoại: (04)3xxxxxxx - Di động: 098xxxxxxx
ĐƠN ĐẶT HÀNG
Họ tên: ……………………………………………………………………………………………...
Địa chỉ: ……………………………………………………………………………………………..
………………………………………………………………………………………………………
Điện thoại: …………………………………………
Hình thức thanh toán: ………………………………
STT
Mã đĩa
Tên đĩa
Số lượng
Đơn giá
Thành tiền
1
x
X
x
x
x
Cộng tiền hàng: ………………..
Tổng cộng thanh toán: ………………..
Số tiền viết bằng chữ: ……………………………………………………………………………...
Người mua hàng
(Ký, ghi rõ họ tên)
Người bán hàng
(Ký, ghi rõ họ tên)
Hoá đơn nhập hàng:
Đơn vị bán hàng:……………………………………………………………………………………
Địa chỉ: ……………………………………………………………………………………………..
Số tài khoản: ………………………………………………….
Điện thoại: ……………………………………
HOÁ ĐƠN NHẬP HÀNG
Đơn vị mua hàng: Cửa hàng đĩa Heaven
Địa chỉ: 668 đường Láng - Đống Đa - Hà Nội
Điện thoại: (04)3xxxxxxx - Di động: 098xxxxxxx
Số tài khoản: 1234-5678-ABCD
Hình thức thanh toán: ……………………………
STT
Mã đĩa
Tên đĩa
Số lượng
Đơn giá
Thành tiền
1
x
X
x
x
x
Cộng tiền hàng: ………………..
Tổng cộng thanh toán: ………………..
Số tiền viết bằng chữ: ……………………………………………………………………………...
Người giao hàng
(Ký, ghi rõ họ tên)
Người nhận hàng
(Ký, ghi rõ họ tên)
Hoá đơn bán hàng:
Cửa hàng đĩa Heaven
Địa chỉ: 668 đường Láng - Đống Đa - Hà Nội
Điện thoại: (04)3xxxxxxx - Di động: 098xxxxxxx
HOÁ ĐƠN BÁN HÀNG
Họ tên: ……………………………………………………………………………………………...
Địa chỉ: ……………………………………………………………………………………………..
Điện thoại: …………………………………………
Hình thức thanh toán: ………………………………
STT
Mã đĩa
Tên đĩa
Số lượng
Đơn giá
Thành tiền
1
x
X
x
x
x
Cộng tiền hàng: ………………..
Tổng cộng thanh toán: ………………..
Số tiền viết bằng chữ: ……………………………………………………………………………...
Người mua hàng
(Ký, ghi rõ họ tên)
Người bán hàng
(Ký, ghi rõ họ tên)
II. YÊU CẦU TIN HỌC HÓA
1) Nội dung đề tài
Với nhu cầu thông tin và quy mô kinh doanh ngày càng mở rộng của cửa hàng, tạo điều kiện thuận lợi cho việc quản lý đĩa cũng như việc nhập xuất đĩa và truy xuất thông tin nhanh chóng về đĩa. Do đó CSDL đòi hỏi phải lập trình để thực hiện được đầy đủ các thao tác nhập xuất, thống kê thông tin một cách đầy đủ và cụ thể, giúp cho cập nhật những đĩa mới cho cửa hàng nhanh chóng, dễ hàng hơn.
Nhân viên phải nhập các thông tin cho các đĩa mới, nhà cung cấp mới, khách hàng mới vào trong dữ liệu và có sự kiểm tra về tính chính xác, đúng đắn của dữ liệu.
Nhân viên được phép chỉnh sửa, xóa những thông tin sai, không phù hợp theo quyền hạn cho phép.
Chủ cửa hàng theo dõi quá trình mua bán, thống kê doanh thu của cửa hàng.
2) Mô tả yêu cầu
Yêu cầu chức năng:
Liệt kê thông tin Đĩa:
Toàn bộ
Theo thời gian
Theo nhân viên
Theo khách hàng
Liệt kê nhân viên theo doanh thu.
Thống kê tổng doanh thu:
Toàn bộ
Theo tháng
Theo năm
Báo cáo chung về tổng nhập, xuất:
Toàn bộ
Theo tháng
Theo năm
Liệt kê các đĩa chưa bán.
Liệt kê các đĩa bán chạy nhất.
III. GIẢI QUYẾT VẤN ĐỀ
Từng bước đi vào phân tích, thiết kế hệ thống để giải quyết vấn đề.
Khảo sát: Tiến hành khảo sát ở một khu vực, địa chỉ cụ thể để lấy thông tin thực tế.
Mô hình hóa nghiệp vụ: Dựa trên khảo sát thực trạng, mô hình hóa các nghiệp vụ bằng mô hình thực thể liên kết, từ đó chuyển sang mô hình quan hệ.
Thiết kế: Từ kết quả ở các mô hình quan hệ, triển khai thiết kế CSDL để đạt được các kết quả như mong muốn.
CHƯƠNG II: MÔ HÌNH THỰC THỂ LIÊN KẾT E-RVÀ MÔ HÌNH QUAN HỆ
I. CÁC BƯỚC XÂY DỰNG
Bước 1: Xác định các thực thể.
Bước 2: Đặc tả mô hình.
Bước 3: Mô hình thực thể liên kết.
Bước 4: Mô hình quan hệ.
II. KÝ HIỆU SỬ DỤNG
Thuộc tính:
Tập thực thể:
Quan hệ:
(min,max): Ràng buộc liên kết.
III. ÁP DỤNG BÀI TOÁN
Bước 1: Xác định các thực thể
Các tập thực thể:
Khách hàng.
Nhân viên bán hàng.
Hoá Đơn.
Loại phiếu xuất nhập.
Đĩa.
Thực thể yếu:
Thể loại đĩa.
Chi tiết hoá đơn.
Bước 2: Đặc tả mô hình
KhachHang (Khách hàng):
Thuộc tính
Viết đầy đủ
Định dạng
Đặc tả
MaKH
Mã khách hàng
Text
PK
TenKH
Tên khách hàng
Text
Dchi_KH
Địa chỉ khách hàng
Text
SDT
Số điện thoại khách hàng
Text
Email
Thư điện tử khách hàng
Text
NhanVienBH (Nhân viên bán hàng):
Thuộc tính
Viết đầy đủ
Định dạng
Đặc tả
MaNV
Mã người bán
Text
PK
TenNV
Tên người bán
Text
Dchi_NV
Địa chỉ người bán
Text
TheLoaiDia (Thể loại đĩa):
Thuộc tính
Viết đầy đủ
Định dạng
Đặc tả
MaTL
Mã thể loại đĩa
Text
PK
TenTL
Tên thể loại đĩa
Text
Dia (Đĩa):
Thuộc tính
Viết đầy đủ
Định dạng
Đặc tả
MaDia
Mã đĩa
Text
PK
TenDia
Tên đĩa
Text
HoaDon (Hoá đơn):
Thuộc tính
Viết đầy đủ
Định dạng
Đặc tả
MaHD
Mã hoá đơn
Text
PK
NgayBan
Ngày bán
Date/Time
CTiet_HD (Chi tiết hoá đơn):
Thuộc tính
Viết đầy đủ
Định dạng
Đặc tả
SoLuong
Số lượng bán
Number
DonGia
Giá tiền
Number
Bước 3: Mô hình thực thể liên kết
Hình 2.1: Mô hình thực thể liên kết của cửa hàng bán đĩa
Bước 4: Mô hình quan hệ
+ KhachHang (MaKH, TenKH, Dchi_KH, SDT, Email)
+ NhanVienBH (MaNV, TenNV, Dchi_NV)
+ Dia (MaDia, TenDia, MaTL)
+ TheLoaiDia (MaTL, TenTL)
+ HoaDon (MaHD, NgayBan, MaNV, MaKH, MaLoai)
+ CTiet_HD (MaHD, MaDia, SoLuong, DonGia)
+ LoaiPhieu (MaLoai, TenLoai)
CHƯƠNG III: CƠ SỞ DỮ LIỆU SQL SERVER 2005
I. MÔ TẢ CÁC BẢNG VÀ QUAN HỆ
1) Mô tả các bảng trong cơ sở dữ liệu
STT
Tên bảng
Tên định nghĩa
Ý nghĩa
1
NhanVienBH
Nhân viên bán hàng
Các thông tin về nhân viên
2
KhachHang
Khách hàng
Các thông tin về khách hàng
3
HoaDon
Hoá đơn
Thông tin chung về giao dịch
4
CTiet_HD
Chi tiết hoá đơn
Thông tin chi tiết về từng đĩa được giao dịch
5
LoaiPhieu
Loại phiếu xuất nhập
Cho biết loại hoá đơn là nhập hay bán hàng
6
Dia
Đĩa
Cho biết thông tin chung về Đĩa
7
TheLoaiDia
Thể loại đĩa
Cho biết Đĩa đó thuộc thể loại gì
2) Các bảng của cơ sở dữ liệu
Bảng HoaDon
Tên cột (Trường)
Kiểu dữ liệu
Cho phép trống
Mô tả
MaHD
nchar(10)
PK
NgayBan
datetime
MaNV
char(3)
FK
MaKH
char(5)
FK
MaLoai
nchar(10)
FK
Bảng KhachHang
Tên cột (Trường)
Kiểu dữ liệu
Cho phép trống
Mô tả
MaKH
char(5)
PK
TenKH
nvarchar(50)
Dchi_KH
nvarchar(100)
SDT
int
x
Email
nchar(20)
x
Bảng NhanVienBH
Tên cột (Trường)
Kiểu dữ liệu
Cho phép trống
Mô tả
MaNV
char(3)
PK
TenNV
nvarchar(50)
Dchi_NV
nvarchar(100)
Bảng LoaiPhieu
Tên cột (Trường)
Kiểu dữ liệu
Cho phép trống
Mô tả
MaLoai
nchar(10)
PK
TenLoai
nvarchar(50)
Bảng CTiet_HoaDon
Tên cột (Trường)
Kiểu dữ liệu
Cho phép trống
Mô tả
MaHD
nchar(10)
PK
MaDia
nchar(10)
SoLuong
bigint
DonGia
float
Bảng Dia
Tên cột (Trường)
Kiểu dữ liệu
Cho phép trống
Mô tả
MaDia
nchar(10)
PK
TenDia
nvarchar(50)
MaTL
nchar(10)
FK
Bảng TheLoaiDia
Tên cột (Trường)
Kiểu dữ liệu
Cho phép trống
Mô tả
MaTL
nchar(10)
PK
TenTL
nvarchar(50)
3) Sơ đồ mô tả mối quan hệ giữa các bảng
Hình 3.1: Mối quan hệ giữa các bảng trong CSDL
II. CÁC THỦ TỤC MÔ TẢ YÊU CẦU CỦA CƠ SỞ DỮ LIỆU
1) Các thủ tục mô tả chức năng cơ bản
Tên thủ tục
Chức năng
Ghi chú
dbo.sp_Insert[Tên bảng]
Nhập dữ liệu cho các bảng
dbo.sp_Delete[Tên bảng]
Xoá dữ liệu ở từng bảng
Cho phép sửa, xoá, thống kê đầy đủ theo các khoá, các trường
dbo.sp_Update[Tên bảng]
Sửa dữ liệu ở từng bảng
dbo.sp_Select[Tên bảng]
Thống kê dữ liệu ở từng bảng
2) Các thủ tục mô tả chức năng được yêu cầu
STT
Tên thủ tục
Chức năng
Liệt kê Đĩa
1
dbo.yc_1_LietKeDia
Liệt kê toàn bộ đĩa
2
dbo.yc_1a_LietKeDia
Liệt kê đĩa theo thể loại
3
dbo.yc_1b_LietKeDia
Liệt kê đĩa theo hoá đơn
Liệt kê
khách hàng
4
dbo.yc_2_LietKeKH
Liệt kê các khách hàng đã mua hàng
(đã sắp xếp)
5
dbo.yc_2a_LietKeKH
Liệt kê các khách hàng đã mua hàng theo khu vực (đã sắp xếp)
Liệt kê
nhân viên
6
dbo.yc_3_NhanVien
Liệt kê 3 nhân viên bán hàng thu được doanh thu nhiều nhất
Thống kê
doanh thu
7
dbo.yc_4_DoanhThu
Tổng doanh thu bán hàng
8
dbo.yc_4a_DoanhThu
Tổng doanh thu bán hàng theo tháng
9
dbo.yc_4b_DoanhThu
Tổng doanh thu bán hàng theo năm
Báo cáo tổng hợp nhập, xuất
10
dbo.yc_5_BaoCaoChung
Báo cáo chung
11
dbo.yc_5a_BaoCaoThang
Báo cáo theo tháng
12
dbo.yc_5b_BaoCaoNam
Báo cáo theo năm
Thống kê sự phổ biến của đĩa
13
dbo.yc_6_DiaKoBanDuoc
Thống kê các đĩa không bán được trong toàn bộ thời gian
14
dbo.yc_6a_DiaKoBanDuoc
Thống kê các đĩa không bán được theo tháng
15
dbo.yc_6b_DiaKoBanDuoc
Thống kê các đĩa không bán được theo năm
16
dbo.yc_7_DiaBanChay
Thống kê 10 đĩa bán chạy nhất
17
dbo.yc_7a_DiaBanChay
Thống kê 10 đĩa bán chạy nhất theo tháng
18
dbo.yc_7b_DiaBanChay
Thống kê 10 đĩa bán chạy nhất theo năm
3) Chi tiết các Store Procedure thực thi yêu cầu
STT
Chức năng
Store Procedure
1
Liệt kê thông tin toàn bộ Đĩa
SELECT Dia.MaDia, Dia.TenDia, TheLoaiDia.TenTL, SUM(CTiet_HD.SoLuong) AS SoLuong, CTiet_HD.DonGia, LoaiPhieu.TenLoai
FROM CTiet_HD INNER JOIN
Dia ON CTiet_HD.MaDia = Dia.MaDia INNER JOIN
TheLoaiDia ON Dia.MaTL = TheLoaiDia.MaTL INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD INNER JOIN
LoaiPhieu ON HoaDon.MaLoai = LoaiPhieu.MaLoai
GROUP BY Dia.MaDia, Dia.TenDia, TheLoaiDia.TenTL, CTiet_HD.DonGia, HoaDon.MaLoai, LoaiPhieu.TenLoai
ORDER BY HoaDon.MaLoai
2
Liệt kê thông tin đĩa theo thể loại
SELECT Dia.MaDia, Dia.TenDia, TheLoaiDia.TenTL, SUM(CTiet_HD.SoLuong) AS SoLuong, CTiet_HD.DonGia, LoaiPhieu.TenLoai
FROM CTiet_HD INNER JOIN
Dia ON CTiet_HD.MaDia = Dia.MaDia INNER JOIN
TheLoaiDia ON Dia.MaTL = TheLoaiDia.MaTL INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD INNER JOIN
LoaiPhieu ON HoaDon.MaLoai = LoaiPhieu.MaLoai
WHERE TheLoaiDia.TenTL = @TenTL
GROUP BY Dia.MaDia, Dia.TenDia, TheLoaiDia.TenTL, CTiet_HD.DonGia, HoaDon.MaLoai, LoaiPhieu.TenLoai
ORDER BY HoaDon.MaLoai
3
Liệt kê thông tin đĩa theo hoá đơn
SELECT Dia.MaDia, Dia.TenDia, TheLoaiDia.TenTL, SUM(CTiet_HD.SoLuong) AS SoLuong, CTiet_HD.DonGia, LoaiPhieu.TenLoai
FROM CTiet_HD INNER JOIN
Dia ON CTiet_HD.MaDia = Dia.MaDia INNER JOIN
TheLoaiDia ON Dia.MaTL = TheLoaiDia.MaTL INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD INNER JOIN
LoaiPhieu ON HoaDon.MaLoai = LoaiPhieu.MaLoai
WHERE LoaiPhieu.TenLoai = @LoaiHD
GROUP BY Dia.MaDia, Dia.TenDia, TheLoaiDia.TenTL, CTiet_HD.DonGia, HoaDon.MaLoai, LoaiPhieu.TenLoai
ORDER BY HoaDon.MaLoai
4
Liệt kê các khách hàng đã mua hàng
SELECT KhachHang.MaKH, KhachHang.TenKH, KhachHang.Dchi_KH, KhachHang.SDT, KhachHang.Email, SUM(CTiet_HD.SoLuong*CTiet_HD.DonGia) AS TongTien
FROM CTiet_HD INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD INNER JOIN
KhachHang ON HoaDon.MaKH = KhachHang.MaKH
WHERE HoaDon.MaLoai = 'PX'
GROUP BY KhachHang.MaKH, KhachHang.TenKH, KhachHang.Dchi_KH, KhachHang.SDT, KhachHang.Email
ORDER BY TongTien DESC
5
Liệt kê các khách hàng đã mua hàng theo khu vực
SELECT KhachHang.MaKH, KhachHang.TenKH, KhachHang.Dchi_KH, KhachHang.SDT, KhachHang.Email, SUM(CTiet_HD.SoLuong*CTiet_HD.DonGia) AS TongTien
FROM CTiet_HD INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD INNER JOIN
KhachHang ON HoaDon.MaKH = KhachHang.MaKH
WHERE HoaDon.MaLoai = 'PX' AND KhachHang.Dchi_KH = @DiaChi
GROUP BY KhachHang.MaKH, KhachHang.TenKH, KhachHang.Dchi_KH, KhachHang.SDT, KhachHang.Email
ORDER BY TongTien DESC
6
Top 3 nhân viên bán hàng có doanh thu lớn nhất
SELECT TOP(3) NhanVienBH.MaNV, NhanVienBH.TenNV, NhanVienBH.Dchi_NV, SUM(CTiet_HD.SoLuong*CTiet_HD.DonGia) AS TongTien
FROM CTiet_HD INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD INNER JOIN
NhanVienBH ON HoaDon.MaNV = NhanVienBH.MaNV
WHERE HoaDon.MaLoai = 'PX'
GROUP BY NhanVienBH.MaNV, NhanVienBH.TenNV, NhanVienBH.Dchi_NV
ORDER BY TongTien DESC
7
Tổng doanh thu bán đĩa
SELECT SUM(ch.SoLuong*ch.DonGia) AS DoanhThu
FROM CTiet_HD ch
8
Doanh thu bán hàng theo tháng
SELECT SUM(ch.SoLuong * ch.DonGia) AS DoanhThu
FROM CTiet_HD AS ch INNER JOIN
HoaDon ON ch.MaHD = HoaDon.MaHD
WHERE DATEPART(MONTH,HoaDon.NgayBan) = @Thang AND DATEPART(YEAR,HoaDon.NgayBan) = @Nam
9
Doanh thu bán hàng theo năm
SELECT SUM(ch.SoLuong * ch.DonGia) AS DoanhThu
FROM CTiet_HD AS ch INNER JOIN
HoaDon ON ch.MaHD = HoaDon.MaHD
WHERE DATEPART(YEAR,HoaDon.NgayBan) = @Nam
10
Báo cáo chung
SELECT Dia.MaDia, Dia.TenDia, tld.TenTL, A.TongNhap, B.TongXuat
FROM Dia INNER JOIN TheLoaiDia tld ON tld.MaTL = Dia.MaTL LEFT JOIN
(
SELECT Dia.MaDia, SUM(CTiet_HD.SoLuong*CTiet_HD.DonGia) AS TongNhap
FROM CTiet_HD INNER JOIN
Dia ON CTiet_HD.MaDia = Dia.MaDia INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD
HERE (HoaDon.MaLoai = 'PN')
GROUP BY Dia.MaDia
) A ON A.MaDia = Dia.MaDia LEFT JOIN
(
SELECT Dia.MaDia, SUM(CTiet_HD.SoLuong*CTiet_HD.DonGia) AS TongXuat
FROM CTiet_HD INNER JOIN
Dia ON CTiet_HD.MaDia = Dia.MaDia INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD
WHERE (HoaDon.MaLoai = 'PX')
GROUP BY Dia.MaDia
) B ON B.MaDia = A.MaDia
11
Báo cáo theo tháng
SELECT Dia.MaDia, Dia.TenDia, TheLoaiDia.TenTL, A.TongNhap, B.TongXuat
FROM CTiet_HD INNER JOIN
Dia ON CTiet_HD.MaDia = Dia.MaDia INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD INNER JOIN
TheLoaiDia ON Dia.MaTL = TheLoaiDia.MaTL LEFT JOIN
(
SELECT Dia.MaDia, SUM(CTiet_HD.SoLuong*CTiet_HD.DonGia) AS TongNhap
FROM CTiet_HD INNER JOIN
Dia ON CTiet_HD.MaDia = Dia.MaDia INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD
WHERE (HoaDon.MaLoai = 'PN')
GROUP BY Dia.MaDia
) A ON A.MaDia = Dia.MaDia LEFT JOIN
(
SELECT Dia.MaDia, SUM(CTiet_HD.SoLuong*CTiet_HD.DonGia) AS TongXuat
FROM CTiet_HD INNER JOIN
Dia ON CTiet_HD.MaDia = Dia.MaDia INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD
WHERE (HoaDon.MaLoai = 'PX')
GROUP BY Dia.MaDia
) B ON B.MaDia = A.MaDia
WHERE DATEPART(MONTH,HoaDon.NgayBan) = @Thang AND DATEPART(YEAR,HoaDon.NgayBan) = @Nam
GROUP BY Dia.MaDia, Dia.TenDia, TheLoaiDia.TenTL, A.TongNhap, B.TongXuat
12
Báo cáo theo năm
SELECT Dia.MaDia, Dia.TenDia, TheLoaiDia.TenTL, A.TongNhap, B.TongXuat
FROM CTiet_HD INNER JOIN
Dia ON CTiet_HD.MaDia = Dia.MaDia INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD INNER JOIN
TheLoaiDia ON Dia.MaTL = TheLoaiDia.MaTL LEFT JOIN
(
SELECT Dia.MaDia, SUM(CTiet_HD.SoLuong*CTiet_HD.DonGia) AS TongNhap
FROM CTiet_HD INNER JOIN
Dia ON CTiet_HD.MaDia = Dia.MaDia INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD
WHERE (HoaDon.MaLoai = 'PN')
GROUP BY Dia.MaDia
) A ON A.MaDia = Dia.MaDia LEFT JOIN
(
SELECT Dia.MaDia, SUM(CTiet_HD.SoLuong*CTiet_HD.DonGia) AS TongXuat
FROM CTiet_HD INNER JOIN
Dia ON CTiet_HD.MaDia = Dia.MaDia INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD
WHERE (HoaDon.MaLoai = 'PX')
GROUP BY Dia.MaDia
) B ON B.MaDia = A.MaDia
WHERE DATEPART(YEAR,HoaDon.NgayBan) = @Nam
GROUP BY Dia.MaDia, Dia.TenDia, TheLoaiDia.TenTL, A.TongNhap, B.TongXuat
13
Đĩa không bán được
SELECT TheLoaiDia.MaTL, Dia.MaDia, Dia.TenDia, TheLoaiDia.TenTL, HoaDon.NgayBan
FROM Dia INNER JOIN
TheLoaiDia ON Dia.MaTL = TheLoaiDia.MaTL INNER JOIN
CTiet_HD ON Dia.MaDia = CTiet_HD.MaDia INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD
WHERE Dia.MaDia NOT IN
(
SELECT CTiet_HD.MaDia
FROM CTiet_HD INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD
WHERE (HoaDon.MaLoai = 'PX')
)
14
Đĩa không bán được theo tháng
SELECT TheLoaiDia.MaTL, Dia.MaDia, Dia.TenDia, TheLoaiDia.TenTL, HoaDon.NgayBan
FROM Dia INNER JOIN
TheLoaiDia ON Dia.MaTL = TheLoaiDia.MaTL INNER JOIN
CTiet_HD ON Dia.MaDia = CTiet_HD.MaDia INNER JOIN
HoaDon ON CTiet_HD.MaHD = HoaDon.MaHD
WHERE Dia.MaDia NOT IN
(
SELECT CTiet_HD.MaDia
FROM CTiet_HD INNER JOIN
Ho