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,772 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 Phấn Đông [T2008A]

Ngày viết: 16:42 11/12/2020



create table bang_hang_hoa2(
 id int primary key identity(1,1),
 name nvarchar(50),
 NSX nvarchar(100),
 Xuat_xu nvarchar(50),
 indate int,
 outdate int,
 NgSX date
)
go
insert into bang_hang_hoa2(name,NSX,Xuat_xu,indate,outdate,NgSX)
values
('quan','Dong1','VN','100','300','2019-1-1'),
('ao','Dong2','USA','100','250','2019-1-12'),
('giay','Dong3','USB','100','2000','2019-1-1'),
('dep','Dong4','JAP','100','400','2019-1-1'),
('mu','Dong5','US','100','180','2019-1-1'),
('kinh','Dong6','VN','100','200','2019-1-1'),
('tai nghe','Dong7','USD','100','400','2019-1-1'),
('dien thoai','Dong8','USA','100','3000','2019-1-1'),
('dong ho','Dong9','KOR','120','20000','2019-1-1'),
('tat','Dong10','JAP','211','300','2019-1-1')

create table bang_ban_hang2(
 id int primary key identity(1,1),
 id_hanghoa int references bang_hang_hoa2(id),
 note text,
 outdate date,
 num int
)
go

insert into bang_ban_hang2(id_hanghoa,note,outdate,num)
values
('1','a','2020-12-10','100'),
('3','','2020-12-10','20'),
('5','','2020-12-10','19'),
('1','g','2020-12-10','60'),
('2','','2020-12-10','27'),
('5','n','2020-12-10','32'),
('3','','2020-12-10','200'),
('7','','2020-12-10','100'),
('9','','2020-12-10','11'),
('10','','2020-12-10','102')

create view view_show_selling1
as
select dbo.bang_hang_hoa2.name,dbo.bang_hang_hoa2.NSX,dbo.bang_ban_hang2.outdate,dbo.bang_hang_hoa2.Xuat_xu,dbo.bang_ban_hang2.num
from dbo.bang_ban_hang2,dbo.bang_hang_hoa2
where dbo.bang_ban_hang2.id_hanghoa=dbo.bang_hang_hoa2.id

select * from view_show_selling1

create view view_liet_ke as
select bang_hang_hoa2.name,bang_ban_hang2.num,bang_hang_hoa2.Xuat_xu,bang_ban_hang2.outdate
from bang_ban_hang2,bang_hang_hoa2
where bang_ban_hang2.id_hanghoa=bang_hang_hoa2.id

select * from view_liet_ke

create proc pr_don_hang
 @Xuat_xu nvarchar(50)
AS
begin
  select bang_hang_hoa2.name,bang_ban_hang2.note,bang_hang_hoa2.Xuat_xu,bang_ban_hang2.num,bang_ban_hang2.outdate
  from bang_hang_hoa2  left join bang_ban_hang2 on bang_ban_hang2.id_hanghoa = bang_hang_hoa2.id
  where bang_hang_hoa2.Xuat_xu = @Xuat_xu and bang_ban_hang2.num != 0
end

exec pr_don_hang Jap

select * from bang_ban_hang2

select id_hanghoa,sum(num) as tong 
from bang_ban_hang2
group by id_hanghoa
    
	create proc proc_total_price
	@id int,
	@totalprice int output
	as
	begin
select @totalprice= sum(bang_ban_hang2.num* bang_hang_hoa2.outdate)
from dbo.bang_ban_hang2,dbo.bang_hang_hoa2
where dbo.bang_ban_hang2.id_hanghoa=dbo.bang_hang_hoa2.id and dbo.bang_hang_hoa2.id [email protected]
end







Nguyễn Hữu Hiếu [T2008A]

Ngày viết: 16:29 11/12/2020



create database quanlybanhang1801
use quanlybanhang1801
create table product (
	id int primary key identity(1,1),
	name nvarchar(50),
	nameproducer nvarchar(100),
	madeby nvarchar(20),
	price_in money,
	price_out money,
	dateofmanufacture date
)

insert into product (name, nameproducer, madeby, price_in, price_out,dateofmanufacture)
values
('Cafe G7 21', 'Trung Nguyen','Viet Nam', 35000, 42000,'2020-10-02'),
('Cafe G7 50', 'Trung Nguyen','Viet Nam', 35000, 42000,'2020-10-22'),
('Pepsi', 'PepsiCo','Thai Lan', 22000, 25000,'2020-10-25'),
('Iphone 12', 'Iphone','USA', 111221000, 1222111000,'2020-11-12'),
('Samsung S10', 'SamSung','Han Quoc', 135000, 242000,'2020-12-22'),
('Cafe G7 50', 'Trung Nguyen','Viet Nam', 35000, 42000,'2020-10-22'),
('S to', 'Trung Nguyen','Viet Nam', 38000, 46000,'2020-10-15'),
('Cafe CF2', 'Trung Nguyen','Viet Nam', 315000, 412000,'2020-10-22'),
('Cafe Sang tao 2', 'Trung Nguyen','Viet Nam', 135000, 342000,'2020-10-11'),
('Cafe Sang tao 2', 'Trung Nguyen','Viet Nam', 235000, 242000,'2020-08-16')

create table donhang (
	id int primary key identity(1,1),
	id_product int references product(id),
	note nvarchar(200),
	date_sale date,
	num int
)

insert into donhang (id_product, note, date_sale, num)
values
(2, 'Cafe hoa tan', '2020-12-11', 20),
(4, 'Sp dien tu', '2020-12-11', 1),
(4, 'Sp dien tu', '2020-10-11', 2),
(5, 'Sp dien tu', '2020-10-11', 4),
(2, 'Cafe hoa tan', '2020-10-11', 4),
(1, 'Cafe hoa tan', '2020-11-11', 12),
(2, 'Cafe hoa tan', '2020-11-11', 4),
(8, 'Cafe phin', '2020-12-15', 3),
(7, 'Cafe phin', '2020-12-13', 5),
(8, 'Cafe phin', '2020-12-22', 10)


select * from product
select * from donhang
--View Don hang gom có: ID san pham, ten san pham, xuat xu, ngay sx, gia ban, num, note
create view view_show_order_detail
as
select donhang.id_product, product.name, product.madeby, product.dateofmanufacture, product.price_out, donhang.num, donhang.note
from product, donhang
where product.id = donhang.id_product

select * from view_show_order_detail
order by id_product asc

--Proc liet ke don hang co Xuat xu == ???
create proc proc_donhang_madeBy
	@madeby nvarchar(20)
as
begin
	select donhang.id_product, product.name, product.madeby, product.dateofmanufacture, product.price_out, donhang.num, donhang.note
	from product, donhang
	where product.id = donhang.id_product and product.madeby = @madeby
end

exec proc_donhang_madeBy USA
exec proc_donhang_madeBy 'Viet Nam'

--Tong gia ban cho tung mat hang
create proc sum_total_productok
	@name nvarchar(50),
	@total money output
as
begin
	SELECT @total = sum(view_show_order_detail.price_out * view_show_order_detail.num)
	FROM view_show_order_detail
	WHERE view_show_order_detail.name = @name
end

DECLARE @total money
EXEC sum_total_productok 'S to', @[email protected] output
PRINT @total


Trần Thị Khánh Huyền [T2008A]

Ngày viết: 16:03 11/12/2020


#ban hang.sql


Create database Quanlybanhang
use Quanlybanhang

create table product(
	id int primary key identity(1,1),
	name nvarchar(50),
	producer nvarchar(50),
	origin nvarchar(30),
	price_in money,
	price_out money,
	created_date date
)
insert into product(name, producer, origin, price_in, price_out,created_date)
values('SP1','NSX1', 'VietNam','50','70','05-05-2019'),
('SP2','NSX2', 'Viet Nam','20','70','05-05-2019'),
('SP3','NSX4', 'Trung Quoc','30','70','05-05-2019'),
('SP4','NSX5', 'Thai Lan','50','70','05-05-2019'),
('SP5','NSX7', 'Han Quoc','50','70','05-05-2019'),
('SP6','NSX8', 'VietNam','50','70','05-05-2019'),
('SP7','NSX2', 'VietNam','50','70','05-05-2019'),
('SP8','NSX3', 'VietNam','50','70','05-05-2019'),
('SP9','NSX1', 'VietNam','50','70','05-05-2019'),
('SP10','NSX1', 'VietNam','50','70','05-05-2019')

create table selling(
	id int primary key identity(1,1),
	id_hanghoa int constraint fk_id foreign key references product(id),
	note nvarchar(100),
	sell_date date,
	num int
)
insert into selling(id_hanghoa, note, sell_date,num)
values('2', 'hang loai 1', '02-02-2020', 20),
('3', 'hang loai 2', '02-02-2020', 30),
('4', 'hang loai 3', '02-02-2020', 20),
('3', 'hang loai 4', '02-02-2020', 50),
('5', 'hang loai 5', '02-02-2020', 20),
('6', 'hang loai 6', '02-02-2020', 60),
('1', 'hang loai 7', '02-02-2020', 20),
('9', 'hang loai 8', '02-02-2020', 10),
('5', 'hang loai 9', '02-02-2020', 20),
('1', 'hang loai 10', '02-02-2020', 50)

select*from selling
create view donbanra as
Select selling.id_hanghoa,selling.note, selling.num, selling.sell_date, product.name, product.producer,product.origin,product.price_in, product.price_out,product.created_date
From selling, product
Where product.id=selling.id_hanghoa

select*from donbanra

create proc proc_origin_product
	@origin nvarchar(100)
as
begin
select selling.id_hanghoa,selling.note, selling.num, selling.sell_date, product.name, product.producer,product.origin,product.price_in, product.price_out,product.created_date
	from product,selling
	where product.origin = @origin and product.id=selling.id_hanghoa
end
exec proc_origin_product 'VietNam'
exec proc_origin_product 'Han Quoc'

create proc proc_price_total
   @name int, @totalprice int
as
begin
	select product.id, product.price_out, selling.id_hanghoa, selling.num
	from product, selling
	where product.id=selling.id_hanghoa 
	group by @name, product.price_out*selling.num as @totalprice 
end


Trần Văn Lâm [T2008A]

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



create database Quan_li_ban_hang_VIP
use Quan_li_ban_hang_VIP
create table Product(
	id int primary key identity(1,1),
	title nvarchar(100),
	producer nvarchar(50),
	origin nvarchar(50),
	import_price money,
	price money,
	ngay_san_xuat date
)
create table Ban_hang(
	id int primary key identity(1,1),
	id_hanghoa int references Product(id),
	note text,
	ngay_ban date,
	num int
)
select * from Product
insert into Product(title,producer,origin,import_price,price,ngay_san_xuat)
values
('fish','FLC','VietNam',10,15,'2020-12-01'),
('crab','Toyota','Japan',30,45,'2020-12-01'),
('shrimp','Vingroup','VietNam',15,25,'2020-12-01'),
('shark','LamTran entertainment','VietNam',20,25,'2020-12-01'),
('cuttle','Alibaba','China',40,55,'2020-12-01'),
('orange','ABC','USA',10,15,'2020-12-01'),
('banana','Obama','USA',5,10,'2020-12-01'),
('coconut','Shiaba','Japan',10,25,'2020-12-01'),
('kiwi','Lamgroup','VietNam',30,45,'2020-12-01'),
('chicken','HuanHoaHongGroup','VietNam',20,25,'2020-12-01')
select * from Ban_hang
insert into Ban_hang(id_hanghoa,note,ngay_ban,num)
values
(1,'abcxyz','2020-12-10',3),
(3,'abcxyz','2020-12-10',5),
(2,'abcxyz','2020-12-10',2),
(2,'abcxyz','2020-12-10',1),
(4,'abcxyz','2020-12-10',2),
(6,'abcxyz','2020-12-10',4),
(4,'abcxyz','2020-12-10',1),
(7,'abcxyz','2020-12-10',2),
(1,'abcxyz','2020-12-10',3),
(3,'abcxyz','2020-12-10',2)
select * from Product
select * from Ban_hang
select Product.title,Product.price,Ban_hang.id_hanghoa,Ban_hang.note,Ban_hang.ngay_ban,Ban_hang.num
from Product,Ban_hang
where Product.id = Ban_hang.id_hanghoa
order by Ban_hang.num asc

create view cac_don_hang
as
select Product.title,Ban_hang.id_hanghoa,Ban_hang.note,Ban_hang.ngay_ban,Ban_hang.num
from Product,Ban_hang
where Product.id = Ban_hang.id_hanghoa
select * from cac_don_hang

select  Product.origin,Product.title,Product.price,Ban_hang.id_hanghoa,Ban_hang.note,Ban_hang.ngay_ban,Ban_hang.num
from Product,Ban_hang
where Product.id = Ban_hang.id_hanghoa
	and Product.origin = 'Japan'
create proc proc_view_origin
	@origin nvarchar(50)
as 
begin
	select  Product.origin,Product.title,Product.price,Ban_hang.id_hanghoa,Ban_hang.note,Ban_hang.ngay_ban,Ban_hang.num
from Product,Ban_hang
where Product.id = Ban_hang.id_hanghoa
	and Product.origin = @origin
end
exec proc_view_origin 'VietNam'

create proc proc_view_total
	@title int, @total money output
as
begin
	select Product.id, Product.title,Ban_hang.num, Product.price, sum(Ban_hang.num) total
	from Product, Ban_hang
	where Product.id = Ban_hang.id_hanghoa and Product.id = @title
	group by Product.id, Product.title,Ban_hang.num,Product.price

	select @total = SUM(total) from (
	select Product.id,Product.title,Ban_hang.num,Product.price, sum(Ban_hang.num) total
	from Product, Ban_hang
	where Product.id = Ban_hang.id_hanghoa and Product.id = @title
	group by Product.id, Product.title, Ban_hang.num, Product.price
	) t
end
declare @total money
exec proc_view_total ,@total = @total output
print @total


vuong huu phu [T2008A]

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



create database qunlybanhang
use qunlybanhang

create table Hang_hoa(
id int identity(1,1) primary key,
Ten_mat_hang nvarchar (100),
Nha_sx nvarchar(100),
Xuat_xu nvarchar(100),
Gia_nhap money,
Gia_ban money,
Ngay_san_xuat date
)
insert into Hang_hoa (Ten_mat_hang,Nha_sx,Xuat_xu,Gia_nhap,Gia_ban,Ngay_san_xuat)
values
('Ban an','A','Trung Quoc','100','150','2020-10-20'),
('Ban an B ','A','Viet Nam','100','150','2020-10-20'),
('Ban B','A','Nhat Ban','100','150','2020-10-20'),
('Ban C','B','Viet Nam','100','150','2020-10-20'),
('Ban EE','C','Viet Nam','100','150','2020-10-20'),
('Ban HHH','A','Nhat Ban','100','150','2020-10-20'),
('Ban KKK','B','Trung Quoc','100','150','2020-10-20'),
('Ban aPP','C','Viet Nam','100','150','2020-10-20'),
('Ban HHJ','A','Nhat Ban','100','150','2020-10-20'),
('Ban OOP<L','C','Viet Nam','100','150','2020-10-20')

create table ban_hang(
id int identity(1,1) primary key,
id_hang_hoa int,
chu_thich text,
Ngay_ban date,
so_luong int
)
insert into ban_hang (id_hang_hoa,chu_thich,Ngay_ban,so_luong)
values
('1','ok good','2020-12-03','1'),
('2','ok good','2020-12-25','3'),
('3','ok good','2020-12-01','2'),
('4','ok good','2020-12-18','1'),
('5','ok good','2020-12-20','1'),
('6','ok good','2020-12-16','4'),
('7','ok good','2020-12-27','2'),
('8','ok good','2020-12-03','1'),
('9','ok good','2020-12-09','7'),
('10','ok good','2020-12-13','1')

ygg
create view liet_ke_hoa_don
as
select Hang_hoa.Ten_mat_hang,Hang_hoa.Nha_sx,Hang_hoa.Xuat_xu,Hang_hoa.Gia_ban,ban_hang.chu_thich,ban_hang.so_luong,ban_hang.Ngay_ban
from ban_hang,Hang_hoa
where Hang_hoa.id = ban_hang.id_hang_hoa

select * from liet_ke_hoa_don

create proc KT_xuat_su
@_xuatsu nvarchar(100)
as
select Hang_hoa.Ten_mat_hang,Hang_hoa.Nha_sx,Hang_hoa.Xuat_xu,Hang_hoa.Gia_ban,ban_hang.chu_thich,ban_hang.so_luong,ban_hang.Ngay_ban
from ban_hang,Hang_hoa
where Hang_hoa.id = ban_hang.id_hang_hoa and Hang_hoa.Xuat_xu = @_xuatsu

exec KT_xuat_su 'Viet Nam'

alter proc ktspppaaa
@mathang int,
@total money output
as
begin
select Hang_hoa.Ten_mat_hang,Hang_hoa.Nha_sx,Hang_hoa.Xuat_xu,Hang_hoa.Gia_ban * sum(ban_hang.so_luong) as tong_gia
from ban_hang,Hang_hoa
where Hang_hoa.id = ban_hang.id_hang_hoa and @mathang = Hang_hoa.id 
group by  Hang_hoa.Ten_mat_hang,Hang_hoa.Nha_sx,Hang_hoa.Xuat_xu,Hang_hoa.Gia_ban
select @total = tong_gia from
(select Hang_hoa.Ten_mat_hang,Hang_hoa.Nha_sx,Hang_hoa.Xuat_xu,Hang_hoa.Gia_ban * sum(ban_hang.so_luong) as tong_gia
from ban_hang,Hang_hoa
where Hang_hoa.id = ban_hang.id_hang_hoa and @mathang = Hang_hoa.id
group by  Hang_hoa.Ten_mat_hang,Hang_hoa.Nha_sx,Hang_hoa.Xuat_xu,Hang_hoa.Gia_ban)as abc
end

declare @total money
exec ktspppaaa 6 ,@total = @total output
print @total


Đã sao chép!!!