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,789 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 đình quân [T2008A]

Ngày viết: 15:13 11/12/2020




create table hang hoa (
 id int primary(1,1),
 name nvarchar(50),
 nha_sx nvarchar(100),
 madein nvarchar (100),
 import_price float ,
 price float ,
 date 
)
insert into hang hoa (name,nha_sx,madein,impost_price,price,date),
values
('ao','abc','viet nam','250000vnd','300000vnd','2020-12-01'),
('quan','abc','trung quoc','150000vnd','200000vnd','2020-12-01'),
('ban chai','abc','thai lan','15000vnd','20000vnd','2020-12-01'),
('laptop','abc','viet nam','15000000vnd','20000000vnd','2020-12-01'),
('vay','abc','nhat ban','150000vnd','220000vnd','2020-12-01'),
('dien thoai','abc','viet nam','15000000vnd','20000000vnd','2020-12-01'),
('chuot','abc','mi','150000vnd','200000vnd','2020-12-01'),
('meo','abc','viet nam','150000vnd','200000vnd','2020-12-01'),
('chan','abc','han quoc','200000vnd','300000vnd','2020-12-01'),
('goi','abc','viet nam','150000vnd','200000vnd','2020-12-01'),
('ga nha','abc','viet nam','500000vnd','600000vnd','2020-12-01')

select *from product

create table hang hoa (
  id int primary(1,1),
  id_hanghoa
  ALTER TABLE hanghoa ADD CONSTRAINT Ma PRIMARY KEY (id hanghoa),
  REFERENCES id hanghoa,
  not text,
  date
  so_luong int
)
insert into hanghoa (id,id hanghoa,chu_thich,ngay_ban,so_luong),
values
('1','23','hai long','2019-08-02','23'),
('2','24','hailong','2019-03-13','2'),
('3','23','hai long','2019-07-12','8'),
('4','23','hai long','2019-06-22','7'),
('5','23','hai long','2019-01-08','20'),
('6','23','hai long','2019-04-02','1'),
('7','23','hai long','2019-02-06','26'),
('8','23','hai long','2019-06-02','23'),
('9','23','hai long','2019-08-02','27'),
('10','23','hai long','2019-09-02','03')
select *from product
create view view_orders
as
select orders. *, product.price_sell
from product, orders
where product.id = orders.id_hanghoa and num > 0

select * from view_orders

create proc proc_orders
	@made_in nvarchar(50)
as
begin
	select product.id, product.name, product.made_in, product.price_sell, orders.ngay_ban, orders.num
	from product, orders
	where product.id = orders.id_hanghoa and product.made_in = @made_in
end

exec proc_orders 'Korea'

create proc proc_total
	@product_id int, @total money output
as
begin
	select product.id, product.name, orders.num, product.price_sell, sum(orders.num) total
	from product, orders
	where product.id = orders.id_hanghoa and product.id = @product_id
	group by product.id, product.name, orders.num, product.price_sell

	select @total = SUM(total) from (
	select product.id, product.name, orders.num, product.price_sell, sum(orders.num) total
	from product, orders
	where product.id = orders.id_hanghoa and product.id = @product_id
	group by product.id, product.name, orders.num, product.price_sell
	) t
end

drop proc proc_total

declare @total money
exec proc_total 1, @total = @total output
print @total	






Do Trung Duc [T2008A]

Ngày viết: 15:12 11/12/2020



create database quanlybanhang11_12_2020
use quanlybanhang11_12_2020

create table Product(
ID int identity(1,1),
Name nvarchar(200),
Manufacture  nvarchar(200),
Country nvarchar(200),
Price_In money,
Price_Out money,
Manufacture_Date date,
constraint PK_Product primary key (ID)
)

create table Sale(
ID int identity(1,1),
ProductID int, 
Note nvarchar(200),
SaleDay date,
Quantity int,
constraint PK_Sale primary key (ID),
constraint FK_Sale_ProductID foreign key (ProductID) references Product(ID)
)

--Them ban ghi
select * from Product
insert into  Product(Name,Manufacture,Country,Price_In,Price_Out,Manufacture_Date)
values
('Giay cong so V1','TrungDucShoes','VietNam','10','15','10-10-2020'),
('Giay leo nui Nike','Nike','Germany','20','25','10-10-2020'),
('Giay chay bo TD','ThuongDinhShoes','VietNam','5','10','10-10-2020'),
('Giay leo nui TDN','TrungDucShoes','VietNam','12','20','10-10-2020'),
('Giay cong so Ma1','Madoni','France','30','35','10-10-2020'),
('Giay the thao A1','Adidas','America','25','35','10-10-2020'),
('Giay leo nui T1','TienDatShoes','VietNam','08','12','10-10-2020'),
('Giay cong so VD','VanDiepShoes','VietNam','100','125','10-10-2020'),
('Giay the thao Lining ','Lining','China','20','30','10-10-2020')

select * from Sale
insert into Sale(ProductID,Note,SaleDay,Quantity)
values
(1,'Hang moi 100%','10-10-2020','3'),
(2,'Hang moi 100%','10-10-2020','1'),
(3,'Hang moi 100%','10-10-2020','5'),
(1,'Hang moi 100%','10-10-2020','2'),
(4,'Hang moi 100%','10-10-2020','7'),
(5,'Hang moi 100%','10-10-2020','5'),
(4,'Hang moi 100%','10-10-2020','2'),
(6,'Hang moi 100%','10-10-2020','9'),
(7,'Hang moi 100%','10-10-2020','1'),
(5,'Hang moi 100%','10-10-2020','6')

-- 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ế
select * from Product
select * from Sale

create view List_saled
as
select * from Sale

select * from List_saled

--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ứ
create proc List_saled_country
	@country nvarchar(200)
as
BEGIN
	select Sale.ProductID,Sale.SaleDay,Sale.Quantity,Product.Manufacture,Product.Country
	from Sale left join Product on Sale.ProductID = Product.ID
	where Product.Country = @country
END

exec List_saled_country VietNam

--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
create proc totalprice 
 @productID int, @total money output
 as
 begin
	
	select Sale.ProductID, Product.Name, Product.Price_Out * sum(Sale.Quantity) as tonggia
	from Sale left join Product on Sale.ProductID = Product.ID where Product.Id = @productID
	group by Sale.ProductID, Product.Name, Product.Price_Out

	select  @total = sum(tonggia) from 
	(select Sale.ProductID, Product.Name,  Product.Price_Out * sum(Sale.Quantity) as tonggia
	from Sale left join Product on Sale.ProductID = Product.ID where Product.Id = @productID
	group by Sale.ProductID, Product.Name, Product.Price_Out) as t
 end

 declare @total money
 exec totalprice 1, @total = @total output
 print @total




Đỗ Minh Quân [T2008A]

Ngày viết: 15:11 11/12/2020



create database quan_ly_ban_hang_2
use quan_ly_ban_hang_2

create table commondity(
id int primary key identity (1,1),
name_com nvarchar (100),
source nvarchar (100),
price_nhap float,
price_ban float,
ngay_san_xuat date,)

insert into commondity
values
('ban chai danh rang','vietnam','10000','15000','2020-09-26'),
('laptop','japan','100000','150000','2020-09-26'),
('ban ghe co','vietnam','10000','15000','2020-09-26'),
('ban chai danh rang','USA','10000','15000','2020-09-26'),
('ban chai danh rang','vietnam','10000','15000','2020-09-26'),
('ban chai danh rang','vietnam','10000','15000','2020-09-26'),
('ban chai danh rang','vietnam','10000','15000','2020-09-26'),
('ban chai danh rang','sweden','10000','15000','2020-09-26'),
('ban chai danh rang','spain','10000','15000','2020-09-26'),
('ban chai danh rang','spain','10000','15000','2020-09-26')

select * from commondity

create table sale (
id int identity (1,1) primary key ,
id_hanghoa int ,
constraint fk_id_hang_hoa foreign key (id) references commondity(id),
note text,
date_sale date,
amount nvarchar (50),)

alter table sale 
add constraint fk_id_hang_hoa foreign key (id) references commondity(id)

alter table sale 
drop constraint fk_id_hang_hoa

insert into sale
values
('2','hang da ban ra','2020-2-26','100'),
('3','hang da ban ra','2020-2-26','100'),
('4','hang da ban ra','2020-2-26','100'),
('5','hang da ban ra','2020-2-26','100'),
('6','hang da ban ra','2020-2-26','100'),
('7','hang da ban ra','2020-2-26','100'),
('8','hang da ban ra','2020-2-26','100'),
('9','hang da ban ra','2020-2-26','100'),
('10','hang da ban ra','2020-2-26','100'),
('11','hang da ban ra','2020-2-26','100')

alter table sale 
add note nvarchar(100);

select * from sale

update sale
set note = 'hang da ban ra'
where date_sale = '2020-02-26'

update sale
set note = 'hang chua dc ban ra'
where id=8

update sale
set note = 'hang chua dc ban ra'
where id=9

update sale
set note = 'hang chua dc ban ra'
where id=10


create view view_show
as
select sale.date_sale , sale.amount,commondity.name_com,sale.note,commondity.price_nhap,commondity.price_ban
from sale, commondity
where sale.id_hanghoa=commondity.id

select * from dbo.view_show

select * from commondity
select * from sale

create proc proc_show_source
@madein nvarchar (100)
as 
begin
select sale.date_sale,sale.amount,sale.id_hanghoa,sale.note,commondity.name_com 
from sale , commondity 
where  sale.id= commondity.id
and [email protected]
end

exec proc_show_source 'vietnam'
exec proc_show_source 'USA'

alter table commondity
add total_price money

update  commondity
set total_price=price_nhap* price_ban

create proc proc_total_1
@name nvarchar (100)
as
begin
select name_com, total_price
from commondity
where commondity.source= @name
end

exec  proc_total_1 vietnam
exec  proc_total_1 USA
exec  proc_total_1 japan


hainguyen [T2008A]

Ngày viết: 15:05 11/12/2020



create database QuanLyBanHang

use QuanLyBanHang

create table product (
	id int primary key identity (1,1),
	name nvarchar(100),
	nha_sx nvarchar(100),
	made_in nvarchar(50),
	price float,
	price_sell float,
	ngay_sx date
)

insert into product(name, nha_sx, made_in, price, price_sell, ngay_sx)
values
('Iphone 5s', 'Apple', 'US', '4.000', '2.000', '2018-05-12'),
('Iphone 6s', 'Apple', 'US', '9.000', '6.000', '2019-05-12'),
('Iphone 6s plus', 'Apple', 'China', '10.000', '8.000', '2019-07-12'),
('Iphone 7', 'Apple', 'China', '11.000', '8.000', '2019-06-20'),
('Iphone XS', 'Apple', 'US', '20.000', '21.000', '2020-05-12'),
('Iphone 12', 'Apple', 'UK', '42.000', '44.000', '2012-12-12'),
('Samsung 7', 'Samsung', 'Korea', '12.000', '13.000', '2017-04-30'),
('Samsung note 7', 'Samsung', 'Kkorea', '13.000', '10.000', '2018-08-25'),
('Samsung 10', 'Samsung', 'China', '32.000', '29.000', '2018-05-18'),
('Samsung 10s', 'Samsung', 'Korea', '40.000', '44.000', '2019-05-21')

select * from product

create table orders (
	id int primary key identity (1,1),
	id_hanghoa int references product(id),
	note nvarchar(500),
	ngay_ban date,
	num int
)

insert into orders(id_hanghoa, note, ngay_ban, num)
values
(1, '', '2018-05-12', 3),
(2, '', '2019-06-12', 5),
(3, '', '2019-08-21', 3),
(4, '', '2019-07-29', 5),
(5, '', '2018-02-12', 3),
(6, '', '2020-06-27', 4),
(7, '', '2018-02-12', 3),
(8, '', '2018-06-24', 4),
(9, '', '2018-07-23', 6),
(10, '', '2019-08-30', 8)

select * from orders

create view view_orders
as
select orders. *, product.price_sell
from product, orders
where product.id = orders.id_hanghoa and num > 0

select * from view_orders

create proc proc_orders
	@made_in nvarchar(50)
as
begin
	select product.id, product.name, product.made_in, product.price_sell, orders.ngay_ban, orders.num
	from product, orders
	where product.id = orders.id_hanghoa and product.made_in = @made_in
end

exec proc_orders 'Korea'

create proc proc_total
	@product_id int, @total money output
as
begin
	select product.id, product.name, orders.num, product.price_sell, sum(orders.num) total
	from product, orders
	where product.id = orders.id_hanghoa and product.id = @product_id
	group by product.id, product.name, orders.num, product.price_sell

	select @total = SUM(total) from (
	select product.id, product.name, orders.num, product.price_sell, sum(orders.num) total
	from product, orders
	where product.id = orders.id_hanghoa and product.id = @product_id
	group by product.id, product.name, orders.num, product.price_sell
	) t
end

drop proc proc_total

declare @total money
exec proc_total 1, @total = @total output
print @total


Nguyễn Xuân Mai [T2008A]

Ngày viết: 15:01 11/12/2020



create database banhang
use banhang

create table product(
	id int primary key identity(1,1),
	name nvarchar(100), 
	producer nvarchar(100),
	made_in nvarchar(100),
	import_price money,
	sell_price money,
	manu_date date
)

insert into product(name, producer, made_in, import_price, sell_price, manu_date)
values
('ao khoac da','abc','japan', 25200, 100635, '2020/11/25'),
('ao phong','abc','thailand', 100000, 250536, '2020/04/06'),
('vay','def','singapore', 260000, 206573, '2017/12/22'),
('quan bo','ghi','vietnam', 520000, 76005635, '2016/11/29'),
('quan dui','ghi','korea', 8000, 12034, '2019/04/18'),
('ao dai tay','abc','japan', 34562, 456725, '2020/11/27'),
('ao giu nhiet','abc','philipines', 56762, 897245, '2019/10/24'),
('chan vay','def','vietnam', 345600, 6734000, '2020/08/28'),
('vest','abc','vietnam', 650000, 7600000, '2015/12/25'),
('quan kaki','ghi','korea', 65700, 567300, '2020/01/21')

select * from product

update product set name = 'vay dai tay' where id = 3

create table sale(
	id int primary key identity(1,1),
	id_product int references product(id),
	note text, 
	sale_date date,
	amount int
)

insert into sale(id_product, note, sale_date, amount)
values
(4,'best seller', '2020/11/05',56),
(5,'newly arrived', '2020/11/27',65),
(3,'out of stock', '2020/11/23',496),
(7,'80 left', '2020/11/25',26),
(6,'newly arrived', '2020/11/27',85),
(8,'380 left', '2020/10/18',998),
(9,'346 left', '2020/09/24',57),
(10,'best seller', '2020/10/29',89),
(3,'newly arrived', '2020/08/30',564),
(2,'newly arrived', '2020/11/25',28)

select * from sale

CREATE VIEW view_order_detail
AS
SELECT sale.id as 'order id', product.id as 'product id', product.name, sale.note, sale.sale_date, sale.amount
FROM product, sale
WHERE product.id = sale.id_product

SELECT * FROM view_order_detail

create proc proc_view_order_madein
	@madein nvarchar(100)
AS
BEGIN
	SELECT sale.id as 'order id', product.id as 'product id', product.name, product.made_in, sale.sale_date, sale.amount
	FROM product, sale
	WHERE product.id = sale.id_product AND product.made_in = @madein
	GROUP BY sale.id, product.id, product.name, product.made_in, sale.sale_date, sale.amount
END

EXEC proc_view_order_madein 'vietnam'
EXEC proc_view_order_madein 'korea'

select sale.id, id_product, name, note, sale_date, amount, sell_price into order_table 
from product, sale
where product.id=sale.id_product

alter table order_table 
add total_price money

select * from order_table

update order_table set total_price=amount*sell_price

create proc proc_view_total_price
	@product_name nvarchar(100),
	@total_price money output
AS
BEGIN
	SELECT name, amount, sell_price
	FROM order_table
	WHERE order_table.name = @product_name 
	BEGIN
		select @total_price=amount*sell_price
		FROM order_table
	END
END

declare @total_price_product int
EXEC proc_view_total_price 'quan bo', @total_price = @total_price_product output


Đã sao chép!!!