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

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.

doc34 trang | Chia sẻ: ngtr9097 | Lượt xem: 2012 | Lượt tải: 3download
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-R VÀ 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