IMG-LOGO
×

Giáo Trình Môn Học

Khoá học lập trình SQL

Kiến Thức Core SQL Server

[Video] Hướng dẫn cách xác định kiểu dữ liệu, primary key, foreign key trong SQL - My SQL - SQL Server [Video] Hướng dẫn thao tác nhiểu bảng - select - multi table - join, inner join trong SQL Server [Video] Hướng dẫn phân tích CSDL - phân tích bảng, column trong bản - Học lập trình SQL, SQL Server [Video] Hướng dẫn tìm hiểu create, alter , insert table và bản chất primary key, foreign key - SQL Server [Video] Hướng dẫn tìm hiểu select, and, in, like, not in,group by .. having, order by asc, desc - SQL Server [Video] Quản lý sinh viên (create, alter, update, insert, select) - Lập trình SQL Server

View SQL Server

[Video] Hướng dẫn tìm hiểu view trong SQL Server Bài Giảng: Hướng dẫn tìm hiểu view + proc trong SQL - Lập trình SQL Server

Store & Procedure

[Video] Hướng dẫn tìm hiểu proc procedure trong SQL Server - Lập trình SQL Server, MySQL Bài Giảng: Xây dự hệ thống đưa đón học sinh bằng xe bus của Trường Học - Lập trình SQL Server [Video] Xây dựng CSDL quản lý điểm danh aptech - Lập trình SQL Server/MySQL

Trigger

[Video] Học Trigger qua ví dụ - quản lý nhà trên phố - Lập trình SQL Server [Video] Hướng dẫn học trigger qua bài quản lý điểm danh Aptech - Lập trình SQL Server [Video] Bài tập - Quản lý nhân khẩu - Lập trình SQL Server - MySQL




Trang Chủ SQL Server/MySQL Bài tập - Chương trình quản lý bán hàng - Lập trình SQL Server

Bài tập - Chương trình quản lý bán hàng - Lập trình SQL Server

by GokiSoft.com - 20:11 12/01/2022 10,782 Lượt Xem

Yêu cầu.

1.Thiết kế bảng hàng hóa gồm các column sau

- id kiểu số nguyên, khóa chính, tự tăng

- tên mặt hàng

- nhà sản xuất
- xuất xứ (Việt Nam, Japan, ...)
- giá nhập
- giá bán
- ngày sản xuất : kiểu dữ liệu date

->Thực hiện chèn them 10 bản ghi vào bảng
2. Thiết kế bảng bán hàng gồm các column sau
- id đơn hàng kiểu số nguyên, khóa chính, tự tăng
- id_hanghoa khóa ngoai liên kết vs khóa id của bang hàng hóa
- chú thich : dùng ghi lại cho mỗi đơn hàng
- ngày bán : kiểu date
- số lượng

- gia ban

->Thực hiện nhập 10 bản ghi cho bảng này

3. Thực hiện liệt kê tất cả các đơn hàng đã được bán ra -> Dùng view để thiết kế
4. Liệt kê các đơn hàng được bán ra có xuất xứ -> yêu cầu viết procedure có tham số truyền vào là xuất xứ
5. Thống kê tổng giá bán được cho từng mặt hàng. -> viết procedure có tham số truyền vào là mặt hàng và tham số đấu già là total

Bình luận



Chia sẻ từ lớp học

Nguyễn Tiến Đạt [T2008A]

Ngày viết: 14:58 11/12/2020



CREATE DATABASE Banhang
USE Banhang

CREATE TABLE Product(
	ID INT PRIMARY KEY IDENTITY(1,1),
	ProductName NVARCHAR(50),
	Manufacturer NVARCHAR(50),
	MadeIn NVARCHAR(20),
	InportPrice MONEY,
	ExportPrice MONEY,
	NSX DATE
)

CREATE TABLE Buylist(
	ID INT PRIMARY KEY IDENTITY(1,1),
	ID_Product INT FOREIGN KEY REFERENCES dbo.Product(ID),
	Note NVARCHAR(100),
	Buytime DATE,
	Quantity INT
)

INSERT dbo.Product
        (
          ProductName ,
          Manufacturer ,
          MadeIn ,
          InportPrice ,
          ExportPrice ,
          NSX
        )
VALUES  (
          N'Bim bim' , -- ProductName - nvarchar(50)
          N'VFood' , -- Manufacturer - nvarchar(50)
          N'Việt Nam' , -- MadeIn - nvarchar(20)
          4000 , -- InportPrice - money
          5000 , -- ExportPrice - money
          GETDATE()  -- NSX - date
        ),
		(
          N'Thuốc lá' , -- ProductName - nvarchar(50)
          N'Nhà máy Thăng Long' , -- Manufacturer - nvarchar(50)
          N'Việt Nam' , -- MadeIn - nvarchar(20)
          17000 , -- InportPrice - money
          21000 , -- ExportPrice - money
          GETDATE()  -- NSX - date
        ),
		(
          N'Kẹo lạc' , -- ProductName - nvarchar(50)
          N'ABC' , -- Manufacturer - nvarchar(50)
          N'Thái Lan' , -- MadeIn - nvarchar(20)
          20000 , -- InportPrice - money
          25000 , -- ExportPrice - money
          GETDATE()  -- NSX - date
        ),
		(
          N'Coca' , -- ProductName - nvarchar(50)
          N'Cola' , -- Manufacturer - nvarchar(50)
          N'Mỹ' , -- MadeIn - nvarchar(20)
          10000 , -- InportPrice - money
          15000 , -- ExportPrice - money
          GETDATE()  -- NSX - date
        ),
		(
          N'Bia Hà Nội' , -- ProductName - nvarchar(50)
          N'Nhà máy bia hơi' , -- Manufacturer - nvarchar(50)
          N'Việt Nam' , -- MadeIn - nvarchar(20)
          10000 , -- InportPrice - money
          15000 , -- ExportPrice - money
          GETDATE()  -- NSX - date
        ),
		(
          N'Bánh quy' , -- ProductName - nvarchar(50)
          N'ABCXYZ' , -- Manufacturer - nvarchar(50)
          N'Pháp' , -- MadeIn - nvarchar(20)
          70000 , -- InportPrice - money
          77000 , -- ExportPrice - money
          GETDATE()  -- NSX - date
        ),
		(
          N'Kẹo mút' , -- ProductName - nvarchar(50)
          N'NSX kẹo mút' , -- Manufacturer - nvarchar(50)
          N'Lào' , -- MadeIn - nvarchar(20)
          500 , -- InportPrice - money
          1000 , -- ExportPrice - money
          GETDATE()  -- NSX - date
        ),
		(
          N'Bánh dừa khô' , -- ProductName - nvarchar(50)
          N'NSX bánh dừa' , -- Manufacturer - nvarchar(50)
          N'Việt Nam' , -- MadeIn - nvarchar(20)
          30000 , -- InportPrice - money
          35000 , -- ExportPrice - money
          GETDATE()  -- NSX - date
        ),
		(
          N'Kem ốc quế' , -- ProductName - nvarchar(50)
          N'Merino' , -- Manufacturer - nvarchar(50)
          N'Việt Nam' , -- MadeIn - nvarchar(20)
          10000 , -- InportPrice - money
          12000 , -- ExportPrice - money
          GETDATE()  -- NSX - date
        ),
		(
          N'Thịt bò khô' , -- ProductName - nvarchar(50)
          N'NSX thịt bò' , -- Manufacturer - nvarchar(50)
          N'Việt Nam' , -- MadeIn - nvarchar(20)
          20000 , -- InportPrice - money
          25000 , -- ExportPrice - money
          GETDATE()  -- NSX - date
        )
SELECT * FROM dbo.Product

GO 
INSERT dbo.Buylist
        (
          ID_Product ,
          Note ,
          Buytime ,
          Quantity
        )
VALUES  ( 
          1 , -- ID_Product - int
          N'Bim bim nhớ cay' , -- Note - nvarchar(100)
          GETDATE() , -- Buytime - date
          5  -- Quantity - int
        ),
		( 
          3 , -- ID_Product - int
          N'Không ngon không nhận đồ' , -- Note - nvarchar(100)
          GETDATE() , -- Buytime - date
          20  -- Quantity - int
        ),
		( 
          9 , -- ID_Product - int
          N'Ship 10 cái kem' , -- Note - nvarchar(100)
          GETDATE() , -- Buytime - date
          11  -- Quantity - int
        ),
		( 
          7 , -- ID_Product - int
          N'Không phải Milkita là được' , -- Note - nvarchar(100)
          GETDATE() , -- Buytime - date
          100  -- Quantity - int
        ),
		( 
          8 , -- ID_Product - int
          N'Ship đến nhà' , -- Note - nvarchar(100)
          GETDATE() , -- Buytime - date
          2  -- Quantity - int
        ),
		( 
          5 , -- ID_Product - int
          N'Phải tươi' , -- Note - nvarchar(100)
          GETDATE() , -- Buytime - date
          30  -- Quantity - int
        ),
		( 
          4 , -- ID_Product - int
          N'Mát lạnh' , -- Note - nvarchar(100)
          GETDATE() , -- Buytime - date
          7  -- Quantity - int
        ),
		( 
          2 , -- ID_Product - int
          N'Hút thuốc lá có thể gây ung thư phổi' , -- Note - nvarchar(100)
          GETDATE() , -- Buytime - date
          10  -- Quantity - int
        ),
		( 
          9 , -- ID_Product - int
          N'Lấy ốc quế không lấy kem' , -- Note - nvarchar(100)
          GETDATE() , -- Buytime - date
          20  -- Quantity - int
        ),
		( 
          6 , -- ID_Product - int
          N'Loại bánh giòn' , -- Note - nvarchar(100)
          GETDATE() , -- Buytime - date
          5  -- Quantity - int
        )
SELECT * FROM dbo.Buylist

GO
CREATE VIEW ShowProductBought
AS
SELECT * FROM dbo.Buylist

GO
SELECT * FROM dbo.ShowProductBought

GO
CREATE PROC ListSaleCountry
	@country NVARCHAR(20)
AS
BEGIN
	SELECT dbo.Buylist.ID_Product, dbo.Buylist.Buytime, dbo.Buylist.Quantity, dbo.Product.Manufacturer, dbo.Product.MadeIn
	FROM dbo.Buylist LEFT JOIN dbo.Product ON Product.ID = dbo.Buylist.ID_Product
	WHERE dbo.Product.MadeIn = @country
END

EXEC dbo.ListSaleCountry @country = N'Việt Nam' -- nvarchar(20)

go
CREATE PROC TotalPrice
	@productID int, @total MONEY OUTPUT
AS
BEGIN
	SELECT dbo.Buylist.ID_Product, dbo.Product.ProductName, SUM(dbo.Buylist.Quantity) AS Tongsoluong, dbo.Product.ExportPrice * SUM(dbo.Buylist.Quantity) AS TongGia
	FROM dbo.Buylist LEFT JOIN dbo.Product ON ID_Product = Product.ID
	WHERE ID_Product = @productID
	GROUP BY dbo.Buylist.ID_Product, dbo.Product.ProductName, dbo.Product.ExportPrice

	SELECT @total = SUM(TongGia) FROM
    (SELECT dbo.Buylist.ID_Product, dbo.Product.ProductName, SUM(dbo.Buylist.Quantity) AS TongSoLuong, dbo.Product.ExportPrice * SUM(dbo.Buylist.Quantity) AS TongGia
	FROM dbo.Buylist LEFT JOIN dbo.Product ON ID_Product = Product.ID
	WHERE ID_Product = @productID
	GROUP BY dbo.Buylist.ID_Product, dbo.Product.ProductName, dbo.Product.ExportPrice) AS t
END

GO
DECLARE @total MONEY
EXEC dbo.TotalPrice @productID = 9, -- int
    @total = @total OUTPUT -- money
PRINT @total





Đã sao chép!!!