Bài tập sql quản lý bán hàng có lời giải

     

Short URL: https://ingamemobi.com/1801Yêu cầu.1.Thiết kế bảng hàng hóa gồm các column sau

- id hình dáng số nguyên, khóa chính, trường đoản cú tăng

- tên mặt hàng

- công ty sản xuất- nguồn gốc xuất xứ (Việt Nam, Japan, ...)- giá bán nhập- giá bán bán- ngày cấp dưỡng : kiểu dữ liệu date

->Thực hiện tại chèn them 10 phiên bản ghi vào bảng2. Kiến tạo 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 link vs khóa id của bang hàng hóa- chú thich : dùng ghi lại cho từng đơn hàng- ngày phân phối : giao diện date- số lượng

- gia ban

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

3. Tiến hành liệt kê toàn bộ các đơn hàng đã được xuất kho -> dùng view nhằm thiết kế4. Liệt kê các giao dịch được đẩy ra có xuất xứ -> yêu ước viết procedure có tham số truyền vào là xuất xứ5. Những thống kê tổng giá cả được đến từng mặt hàng. -> viết procedure bao gồm tham số truyền vào là mặt hàng và thông số đấu già là total


Bạn đang xem: Bài tập sql quản lý bán hàng có lời giải

Ứng Dụng Học


*

Hoàng Thái sơn


Create database QuanLyBanHang

go

use QuanLyBanHang

go

Create table sản phẩm (

id int primary key identity (1,1),

name nvarchar(50),

producer nvarchar(50),

made_in nvarchar(30),

price_in int,

price_out int,

day_released date

)

go

Create table Sell (

id int primary key identity(1,1),

id_product int,

note text,

day_sell date,

quantity int,

FOREIGN KEY (id_product) references Product(id)

)

go

insert into Product(name, producer, made_in, price_in, price_out, day_released)

values

go

insert into Sell (id_product, note, day_sell, quantity)

values

go

select * from Product

select * from Sell

create view view_sold_product

as

select sell.id "Prodcut code", Product.name, Product.made_in, sell.day_sell, sell.quantity

from Sell, Product

where sell.id_product = Product.id

select * from view_sold_product

create proc proc_view_sold_product


origin nvarchar(20)

as begin

select sell.id "Prodcut code", Product.name, Product.made_in, sell.day_sell, sell.quantity

from Sell, Product

where Sell.id_product=Product.id and

Product.made_in =
origin

end

exec proc_view_sold_product Canada

select Product.name, SUM(Product.price_out * Sell.quantity) "Total_price"

from Sell left join hàng hóa on Sell.id_product = Product.id

group by Product.name

create proc proc_sum_price_product


mat_hang nvarchar(20),


total int output

as begin

select
total = SUM(Product.price_out * Sell.quantity)

from Product, Sell

where Sell.id_product = Product.id

and Product.name =
mat_hang

group by Product.name, Product.price_out

end

drop proc proc_sum_price_product

declare
count int

exec proc_sum_price_product "tu lanh",
total =
count output

print N"Tong gia tri: " + + CONVERT(nvarchar(20),
count)


*

madein nvarchar(50)asbeginselect product.id, product.producer_name, product.madein, product.sell_price, orders.numberfrom product inner join orders on product.id = orders.product_idwhere product.madein =
madeinorder by product.id ascendexec proc_product_by_madein "Viet Nam"-- create proccreate proc proc_statistic_product
productId int,
total float outputasbegin-- TESTselect product.id, product.producer_name, product.madein, sum(orders.number * orders.price) as "TotalMoney"from product inner join orders on product.id = orders.product_idgroup by product.id, product.producer_name, product.madeinorder by TotalMoney desc-- Chuc nang can lamselect
total = sum(orders.number * orders.price)from product inner join orders on product.id = orders.product_idwhere product.id =
productIdenddeclare
total intexec proc_statistic_product 3,
total =
total outputprint N"Doanh thu cua san pham 3: " + convert(nvarchar,
total)
*

xuatxu nvarchar(100)asbeginselect hang_hoa.ten_hang, hang_hoa.gia_ban, hang_hoa.gia_nhap, hang_hoa.ngay_sx, hang_hoa.nha_sx, hang_hoa.xuat_xu, ban_hang.chu_thich, ban_hang.ngay_ban, ban_hang.so_luongfrom hang_hoa,ban_hangwhere hang_hoa.id=ban_hang.ID_hang_hoa & hang_hoa.xuat_xu =
xuatxuendexec xuat_xu "China"--- 5 ---create gia_ban
tenhang int,
total money outputasbeginselect hang_hoa.ten_hang, hang_hoa.gia_ban, hang_hoa.gia_nhap, hang_hoa.ngay_sx, hang_hoa.nha_sx, hang_hoa.xuat_xu, ban_hang.chu_thich, ban_hang.ngay_ban, ban_hang.so_luong, hang_hoa.gia_ban *sum(ban_hang.so_luong) as tong_giafrom hang_hoa,ban_hangwhere hang_hoa.id=ban_hang.ID_hang_hoa và
tenhang = hang_hoa.idgroup by Hang_hoa.ten_hang,Hang_hoa.Nha_sx,Hang_hoa.Xuat_xu,Hang_hoa.Gia_banselect

Xem thêm: Thiết Lập Và Xem Tài Khoản Itunes Store Trên Pc, Id Apple Là Gì

total = tong_gia from(select Hang_hoa.ten_hang,Hang_hoa.Nha_sx,Hang_hoa.Xuat_xu,Hang_hoa.Gia_ban * sum(ban_hang.so_luong) as tong_giafrom ban_hang,Hang_hoawhere Hang_hoa.id = ban_hang.id_hang_hoa và
mathang = Hang_hoa.idgroup by Hang_hoa.ten_hang,Hang_hoa.Nha_sx,Hang_hoa.Xuat_xu,Hang_hoa.Gia_ban)as abcenddeclare
total moneyexec gia_ban 1 ,
total =
total outputprint
totalend
*

origin nvarchar(20)asbeginselect sell.id_order, product.name, sell.date_sell, sell.amountfrom sell, productwhere product.id=sell.id và product.origin=
originendexec vw_origin "Japan"create proc vw_tatal_price
productId int,
tatal_price float outputasbeginselect
tatal_price=sum(product.price*sell.amount)from product, sellwhere product.id=sell.id và product.id=
productIdenddeclare
tatal_price float exec vw_tatal_price 3,
tatal_price=
tatal_price đầu ra print
tatal_price print N"Tong tien ban duoc: "+ convert(nvarchar(50),
tatal_price)

-- Tao databaseCREATE DATABASE BT1801-- Active databaseUSE BT1801-- Tao tablesCREATE TABLE hàng hóa (id INT PRIMARY KEY IDENTITY(1,1),name NVARCHAR(150) NOT NULL,manufacturer_name NVARCHAR(50),madein NVARCHAR(50),buy FLOAT,sell FLOAT,created_at date)CREATE TABLE orders (id INT PRIMARY KEY IDENTITY(1,1),id_product INT REFERENCES dbo.product(id),note NVARCHAR(200),num INT,created_at date)-- Insert du lieuINSERT INTO dbo.product ( name ,manufacturer_name ,madein ,buy ,sell ,created_at)VALUES("san pham 1", "ABC", "Viet Nam", 10000, 20000, GETDATE()),("san pham 2", "324", "Viet Nam", 20000, 60000, GETDATE()),("san pham 3", "sfds", "US", 100000, 200000, GETDATE()),("san pham 4", "23424", "Viet Nam", 10000, 20000, GETDATE()),("san pham 5", "234", "Viet Nam", 10000, 20000, GETDATE()),("san pham 6", "AB54C", "JP",510000, 660000, GETDATE()),("san pham 7", "65", "JP", 10000, 20000, GETDATE()),("san pham 8", "456", "Viet Nam", 10000, 20000, GETDATE())INSERT INTO dbo.orders ( id_product, note, num, created_at )VALUES(2, "Ship ve sầu Y Yen nam Dinh", 2, GETDATE()),(3, "xin chao", 2, GETDATE()),(4, "hang fake", 2, GETDATE()),(3, "okok", 2, GETDATE()),(2, "madein đài loan trung quốc - hang JP", 2, GETDATE()),(5, "Ship ve Y Yen nam giới Dinh", 2, GETDATE())-- View: name, manufacturer_name, madein, sell, num, tức thì banCREATE VIEW view_show_product_sellingASSELECT dbo.product.name, dbo.product.manufacturer_name, dbo.product.madein, dbo.product.sell, dbo.orders.num, dbo.orders.created_at AS "OrderDate"FROM dbo.product, dbo.ordersWHERE dbo.product.id = dbo.orders.id_productSELECT * FROM view_show_product_selling-- Tao produceCREATE PROC proc_show_product_selling_by_madein
madein nvarchar(50)ASBEGINSELECT dbo.product.name, dbo.product.manufacturer_name, dbo.product.madein, dbo.product.sell, dbo.orders.created_at AS "OrderDate"FROM dbo.product, dbo.ordersWHERE dbo.product.id = dbo.orders.id_productAND dbo.product.madein =
madeinENDEXEC proc_show_product_selling_by_madein "Viet Nam"EXEC proc_show_product_selling_by_madein "US"-- PROC tinh tong so tien ban dc vs 1 mat hangCREATE PROC proc_total_price_by_product_id
productId int,
totalPrice float OUTPUTASBEGINSELECT
totalPrice = SUM(dbo.product.sell * orders.num)FROM dbo.product, dbo.ordersWHERE dbo.product.id = dbo.orders.id_productAND dbo.product.id =
productIdENDDECLARE
totalPrice FLOATEXEC proc_total_price_by_product_id 5,
totalPrice =
totalPrice OUTPUTPRINT
totalPricePRINT N"Tong tien ban duoc: " + CONVERT(nvarchar(50),
totalPrice)
‹1