Tải bản đầy đủ (.doc) (19 trang)

Bài tập cơ sở dữ liệu SQLServer và lời giản Quản lý bán hàng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (181.94 KB, 19 trang )

BÀI TẬP SQL SERVER VÀ LỜI GIẢI
QUẢN LÝ BÁN HÀNG
Bài tập 1:
Cơ sở dữ liệu quản lý bán hàng gồm có các quan hệ sau:
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)
Tân từ: Quan hệ khách hàng sẽ lưu trữ thông tin của khách hàng thành viên gồm có các thuộc tính:
mã khách hàng, họ tên, địa chỉ, số điện thoại, ngày sinh, ngày đăng ký và doanh số (tổng trị giá các
hóa đơn của khách hàng thành viên này).
NHANVIEN (MANV,HOTEN, NGVL, SODT)
Tân từ: Mỗi nhân viên bán hàng cần ghi nhận họ tên, ngày vào làm, điện thọai liên lạc, mỗi nhân viên
phân biệt với nhau bằng mã nhân viên.
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
Tân từ: Mỗi sản phẩm có một mã số, một tên gọi, đơn vị tính, nước sản xuất và một giá bán.
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
Tân từ: Khi mua hàng, mỗi khách hàng sẽ nhận một hóa đơn tính tiền, trong đó sẽ có số hóa đơn,
ngày mua, nhân viên nào bán hàng, trị giá của hóa đơn là bao nhiêu và mã số của khách hàng nếu là
khách hàng thành viên.
CTHD (SOHD,MASP,SL)
Tân từ: Diễn giải chi tiết trong mỗi hóa đơn gồm có những sản phẩm gì với số lượng là bao nhiêu.
(sơ đồ thể hiện mối quan hệ giữa các bảng)
NHANVIEN
MANV

HOTEN

DTHOAI

NGVL

NV01


Nguyen Nhu Nhut

0927345678

13/4/2006

NV02

Le Thi Phi Yen

0987567390

21/4/2006

NV03

Nguyen Van B

0997047382

27/4/2006

NV04

Ngo Thanh Tuan

0913758498

24/6/2006


NV05

Nguyen Thi Truc Thanh

0918590387

20/7/2006

KHACHHANG
MAKH

HOTEN

DCHI

SODT

NGSINH

DOANHSO

NGDK

KH01

Nguyen Van A

731 Tran Hung Dao, Q5, TpHCM

08823451


22/10/1960 13,060,000 22/07/2006

KH02

Tran Ngoc Han

23/5 Nguyen Trai, Q5, TpHCM

0908256478

3/4/1974

280,000 30/07/2006

KH03

Tran Ngoc Linh

45 Nguyen Canh Chan, Q1, TpHCM 0938776266

12/6/1980

3,860,000 05/08/2006

KH04

Tran Minh Long

50/34 Le Dai Hanh, Q10, TpHCM


0917325476

9/3/1965

250,000 02/10/2006

KH05

Le Nhat Minh

34 Truong Dinh, Q3, TpHCM

08246108

10/3/1950

21,000 28/10/2006

KH06

Le Hoai Thuong

227 Nguyen Van Cu, Q5, TpHCM

08631738

31/12/1981

915,000 24/11/2006


KH07

Nguyen Van Tam

32/3 Tran Binh Trong, Q5, TpHCM

0916783565

6/4/1971

12,500 01/12/2006

KH08

Phan Thi Thanh

45/2 An Duong Vuong, Q5, TpHCM

0938435756

10/1/1971

365,000 13/12/2006

KH09

Le Ha Vinh

873 Le Hong Phong, Q5, TpHCM


08654763

3/9/1979

70,000 14/01/2007

KH10

Ha Duy Lap

34/34B Nguyen Trai, Q1, TpHCM

08768904

2/5/1983

67,500 16/01/2007


SANPHAM

HOADON

MASP
BC01

TENSP

DVT


But chi

cay

NUOCSX
Singapore

GIA

SOHD

NGHD

MAKH MANV

TRIGIA

3,000

1001

23/07/2006 KH01

NV01

320,000

12/08/2006 KH01


NV02

840,000

BC02

But chi

cay

Singapore

5,000

1002

BC03

But chi

cay

Viet Nam

3,500

1003

23/08/2006 KH02


NV01

100,000

01/09/2006 KH02

NV01

180,000

BC04

But chi

hop

Viet Nam

30,000

1004

BB01

But bi

cay

Viet Nam


5,000

1005

20/10/2006 KH01

NV02

3,800,000

7,000

1006

16/10/2006 KH01

NV03

2,430,000

100,000

1007

28/10/2006 KH03

NV03

510,000


28/10/2006 KH01

NV03

440,000

BB02

But bi

cay

Trung Quoc

BB03

But bi

hop

Thai Lan

TV01

Tap 100 giay mong

quyen

Trung Quoc


2,500

1008

TV02

Tap 200 giay mong

quyen

Trung Quoc

4,500

1009

28/10/2006 KH03

NV04

200,000

TV03

Tap 100 giay tot

quyen

Viet Nam


3,000

1010

01/11/2006 KH01

NV01

5,200,000

TV04

Tap 200 giay tot

quyen

Viet Nam

5,500

1011

04/11/2006 KH04

NV03

250,000

TV05


Tap 100 trang

chuc

Viet Nam

23,000

1012

30/11/2006 KH05

NV03

21,000

TV06

Tap 200 trang

chuc

Viet Nam

53,000

1013

12/12/2006 KH06


NV01

5,000

TV07

Tap 100 trang

chuc

Trung Quoc

34,000

1014

31/12/2006 KH03

NV02

3,150,000

ST01

So tay 500 trang

quyen

Trung Quoc


40,000

1015

01/01/2007 KH06

NV01

910,000

ST02

So tay loai 1

quyen

Viet Nam

55,000

1016

01/01/2007 KH07

NV02

12,500

02/01/2007 KH08


NV03

35,000

ST03

So tay loai 2

quyen

Viet Nam

51,000

1017

ST04

So tay

quyen

Thai Lan

55,000

1018

13/01/2007 KH08


NV03

330,000

13/01/2007 KH01

NV03

30,000

ST05

So tay mong

quyen

Thai Lan

20,000

1019

ST06

Phan viet bang

hop

Viet Nam


5,000

1020

14/01/2007 KH09

NV04

70,000

16/01/2007 KH10

NV03

67,500

ST07

Phan khong bui

hop

Viet Nam

7,000

1021

ST08


Bong bang

cai

Viet Nam

1,000

1022

16/01/2007 Null

NV03

7,000

ST09

But long

cay

Viet Nam

5,000

1023

17/01/2007 Null


NV01

330,000

ST10

But long

cay

Trung Quoc

7,000

MASP
BB01
BB02
BB03
TV01
TV02
TV03
TV04
ST04
ST05
ST06
ST07
ST08
TV01
TV02
ST07


SL
50
30
7
5
1
1
5
6
1
2
10
5
7
10
1

CTHD
SOHD
1001
1001
1001
1001
1001
1002
1002
1002
1003
1004

1004
1004
1004
1005
1005
1006

MASP
TV02
ST01
BC01
BC02
ST08
BC04
BB01
BB02
BB03
TV01
TV02
TV03
TV04
TV05
TV06
TV07

CTHD
SL
10
5
5

10
10
20
20
20
10
20
10
10
10
50
50
20

SOHD
1006
1006
1007
1008
1009
1010
1010
1010
1010
1010
1011
1012
1013
1014
1014

1014

MASP
ST01
ST02
ST03
ST04
ST05
TV07
ST07
ST08
ST04
TV03
ST06
ST07
ST08
BC02
BB02
BC04

CTHD
SL
30
10
10
8
10
50
50
100

50
100
50
3
5
80
100
60

SOHD
1014
1015
1015
1016
1017
1017
1017
1018
1019
1019
1020
1021
1021
1021
1022
1023

ST04

6



BẢNG THUỘC TÍNH
Quan hệ

Thuộc tính

Diễn giải

Kiểu dữ liệu

MAKH
HOTEN
DCHI
SODT
NGSINH
NGDK
DOANHSO

Mã khách hàng
Họ tên
Địa chỉ
Số điện thọai
Ngày sinh
Ngày đăng ký thành viên
Tổng trị giá các hóa đơn khách hàng đã mua

char(4)
varchar(40)
varchar(50)

varchar(20)
smalldatetime
smalldatetime
money

NHANVIEN

MANV
HOTEN
SODT
NGVL

Mã nhân viên
Họ tên
Số điện thoại
Ngày vào làm

char(4)
varchar(40)
varchar(20)
smalldatetime

SANPHAM

MASP
TENSP
DVT
NUOCSX
GIA


Mã sản phẩm
Tên sản phẩm
Đơn vị tính
Nước sản xuất
Giá bán

char(4)
varchar(40)
varchar(20)
varchar(40)
money

HOADON

SOHD
NGHD
MAKH
MANV
TRIGIA

Số hóa đơn
Ngày mua hàng
Mã khách hàng nào mua
Nhân viên bán hàng
Trị giá hóa đơn

int
smalldatetime
char(4)
char(4)

money

CTHD

SOHD
MASP
SL

Số hóa đơn
Mã sản phẩm
Số lượng

int
char(4)
int

KHACHHANG

I. Ngôn ngữ định nghĩa dữ liệu (Data Definition Language):
1.

Tạo các quan hệ và khai báo các khóa chính, khóa ngoại của quan hệ.

2.

Thêm vào thuộc tính GHICHU có kiểu dữ liệu varchar(20) cho quan hệ SANPHAM.

3.

Thêm vào thuộc tính LOAIKH có kiểu dữ liệu là tinyint cho quan hệ KHACHHANG.


4.

Sửa kiểu dữ liệu của thuộc tính GHICHU trong quan hệ SANPHAM thành varchar(100).

5.

Xóa thuộc tính GHICHU trong quan hệ SANPHAM.

6.

Làm thế nào để thuộc tính LOAIKH trong quan hệ KHACHHANG có thể lưu các giá trị là: “Vang
lai”, “Thuong xuyen”, “Vip”, …

7.

Đơn vị tính của sản phẩm chỉ có thể là (“cay”,”hop”,”cai”,”quyen”,”chuc”)

8.

Giá bán của sản phẩm từ 500 đồng trở lên.

9.

Mỗi lần mua hàng, khách hàng phải mua ít nhất 1 sản phẩm.

10.

Ngày khách hàng đăng ký là khách hàng thành viên phải lớn hơn ngày sinh của người đó.



11.

Ngày mua hàng (NGHD) của một khách hàng thành viên sẽ lớn hơn hoặc bằng ngày khách hàng đó
đăng ký thành viên (NGDK).

12.

Ngày bán hàng (NGHD) của một nhân viên phải lớn hơn hoặc bằng ngày nhân viên đó vào làm.

13.

Mỗi một hóa đơn phải có ít nhất một chi tiết hóa đơn.

14.

Trị giá của một hóa đơn là tổng thành tiền (số lượng*đơn giá) của các chi tiết thuộc hóa đơn đó.

15.

Doanh số của một khách hàng là tổng trị giá các hóa đơn mà khách hàng thành viên đó đã mua.

II. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language):
1.

Nhập dữ liệu cho các quan hệ trên.

2.

Tạo quan hệ SANPHAM1 chứa toàn bộ dữ liệu của quan hệ SANPHAM. Tạo quan hệ

KHACHHANG1 chứa toàn bộ dữ liệu của quan hệ KHACHHANG.

3.

Cập nhật giá tăng 5% đối với những sản phẩm do “Thai Lan” sản xuất (cho quan hệ SANPHAM1)

4.

Cập nhật giá giảm 5% đối với những sản phẩm do “Trung Quoc” sản xuất có giá từ 10.000 trở xuống
(cho quan hệ SANPHAM1).

5.

Cập nhật giá trị LOAIKH là “Vip” đối với những khách hàng đăng ký thành viên trước ngày
1/1/2007 có doanh số từ 10.000.000 trở lên hoặc khách hàng đăng ký thành viên từ 1/1/2007 trở về
sau có doanh số từ 2.000.000 trở lên (cho quan hệ KHACHHANG1).

III. Ngôn ngữ truy vấn dữ liệu có cấu trúc:
1.

In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất.

2.

In ra danh sách các sản phẩm (MASP, TENSP) có đơn vị tính là “cay”, ”quyen”.

3.

In ra danh sách các sản phẩm (MASP,TENSP) có mã sản phẩm bắt đầu là “B” và kết thúc là “01”.


4.

In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quốc” sản xuất có giá từ 30.000 đến
40.000.

5.

In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” hoặc “Thai Lan” sản xuất có giá từ
30.000 đến 40.000.

6.

In ra các số hóa đơn, trị giá hóa đơn bán ra trong ngày 1/1/2007 và ngày 2/1/2007.

7.

In ra các số hóa đơn, trị giá hóa đơn trong tháng 1/2007, sắp xếp theo ngày (tăng dần) và trị giá của
hóa đơn (giảm dần).

8.

In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2007.

9.

In ra số hóa đơn, trị giá các hóa đơn do nhân viên có tên “Nguyen Van B” lập trong ngày
28/10/2006.

10.


In ra danh sách các sản phẩm (MASP,TENSP) được khách hàng có tên “Nguyen Van A” mua trong
tháng 10/2006.

11.

Tìm các số hóa đơn đã mua sản phẩm có mã số “BB01” hoặc “BB02”.

12.

Tìm các số hóa đơn đã mua sản phẩm có mã số “BB01” hoặc “BB02”, mỗi sản phẩm mua với số
lượng từ 10 đến 20.

13.

Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có mã số “BB01” và “BB02”, mỗi sản phẩm mua với
số lượng từ 10 đến 20.

14.

In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất hoặc các sản phẩm được bán
ra trong ngày 1/1/2007.

15.

In ra danh sách các sản phẩm (MASP,TENSP) không bán được.


16.

In ra danh sách các sản phẩm (MASP,TENSP) không bán được trong năm 2006.


17.

In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất không bán được trong năm
2006.

18.

Tìm số hóa đơn đã mua tất cả các sản phẩm do Singapore sản xuất.

19.

Tìm số hóa đơn trong năm 2006 đã mua ít nhất tất cả các sản phẩm do Singapore sản xuất.

20.

Có bao nhiêu hóa đơn không phải của khách hàng đăng ký thành viên mua?

21.

Có bao nhiêu sản phẩm khác nhau được bán ra trong năm 2006.

22.

Cho biết trị giá hóa đơn cao nhất, thấp nhất là bao nhiêu ?

23.

Trị giá trung bình của tất cả các hóa đơn được bán ra trong năm 2006 là bao nhiêu?


24.

Tính doanh thu bán hàng trong năm 2006.

25.

Tìm số hóa đơn có trị giá cao nhất trong năm 2006.

26.

Tìm họ tên khách hàng đã mua hóa đơn có trị giá cao nhất trong năm 2006.

27.

In ra danh sách 3 khách hàng (MAKH, HOTEN) có doanh số cao nhất.

28.

In ra danh sách các sản phẩm (MASP, TENSP) có giá bán bằng 1 trong 3 mức giá cao nhất.

29.

In ra danh sách các sản phẩm (MASP, TENSP) do “Thai Lan” sản xuất có giá bằng 1 trong 3 mức giá
cao nhất (của tất cả các sản phẩm).

30.

In ra danh sách các sản phẩm (MASP, TENSP) do “Trung Quoc” sản xuất có giá bằng 1 trong 3 mức giá
cao nhất (của sản phẩm do “Trung Quoc” sản xuất).


31.

* In ra danh sách 3 khách hàng có doanh số cao nhất (sắp xếp theo kiểu xếp hạng).

32.

Tính tổng số sản phẩm do “Trung Quoc” sản xuất.

33.

Tính tổng số sản phẩm của từng nước sản xuất.

34.

Với từng nước sản xuất, tìm giá bán cao nhất, thấp nhất, trung bình của các sản phẩm.

35.

Tính doanh thu bán hàng mỗi ngày.

36.

Tính tổng số lượng của từng sản phẩm bán ra trong tháng 10/2006.

37.

Tính doanh thu bán hàng của từng tháng trong năm 2006.

38.


Tìm hóa đơn có mua ít nhất 4 sản phẩm khác nhau.

39.

Tìm hóa đơn có mua 3 sản phẩm do “Viet Nam” sản xuất (3 sản phẩm khác nhau).

40.

Tìm khách hàng (MAKH, HOTEN) có số lần mua hàng nhiều nhất.

41.

Tháng mấy trong năm 2006, doanh số bán hàng cao nhất ?

42.

Tìm sản phẩm (MASP, TENSP) có tổng số lượng bán ra thấp nhất trong năm 2006.

43.

*Mỗi nước sản xuất, tìm sản phẩm (MASP,TENSP) có giá bán cao nhất.

44.

Tìm nước sản xuất sản xuất ít nhất 3 sản phẩm có giá bán khác nhau.

45.

*Trong 10 khách hàng có doanh số cao nhất, tìm khách hàng có số lần mua hàng nhiều nhất.


Giải bài tập 1:
USE master


DROP DATABASE QLBH
CREATE DATABASE QLBH
GO
USE QLBH
/*PHAN 1*/
/*cau 1*/
CREATE TABLE KHACHHANG(
MAKH CHAR(4),
HOTEN VARCHAR(40),
DCHI VARCHAR(50),
SODT VARCHAR(20),
NGSINH SMALLDATETIME,
NGDK SMALLDATETIME,
DOANHSO MONEY,
PRIMARY KEY(MAKH)
)
GO
CREATE TABLE NHANVIEN(
MANV CHAR(4),
HOTEN VARCHAR(40),
SODT VARCHAR(20),
NGVL SMALLDATETIME,
PRIMARY KEY (MANV)
)
GO
CREATE TABLE SANPHAM(

MASP CHAR(4),
TENSP VARCHAR(40),
DVT VARCHAR(40),
NUOCSX VARCHAR(40),
GIA MONEY,
PRIMARY KEY (MASP)
)
GO
CREATE TABLE HOADON(
SOHD INT,
NGHD SMALLDATETIME,
MAKH CHAR(4),
MANV CHAR(4),
TRIGIA MONEY,
PRIMARY KEY (SOHD)
)
GO
CREATE TABLE CTHD(
SOHD INT,
MASP CHAR(4),
SL INT,
PRIMARY KEY (SOHD, MASP)
)
ALTER TABLE HOADON
ADD CONSTRAINT FK_HD_KH


FOREIGN KEY (MAKH) REFERENCES KHACHHANG(MAKH)
ALTER TABLE HOADON
ADD CONSTRAINT FK_HD_NV

FOREIGN KEY (MANV) REFERENCES NHANVIEN(MANV)
ALTER TABLE CTHD
ADD CONSTRAINT FK_CTHD_HD
FOREIGN KEY (SOHD) REFERENCES HOADON(SOHD)
ALTER TABLE CTHD
ADD CONSTRAINT FK_CTHD_SP
FOREIGN KEY (MASP) REFERENCES SANPHAM(MASP)
/*cau 2*/
ALTER TABLE SANPHAM
ADD GHICHU VARCHAR(20)
GO
/*cau 3*/
ALTER TABLE KHACHHANG
ADD LOAIKH TINYINT
/*cau 4*/
ALTER TABLE SANPHAM
ALTER COLUMN GHICHU VARCHAR(100)
GO
/*cau 5*/
ALTER TABLE SANPHAM
DROP COLUMN GHICHU
GO
/*cau 6*/
ALTER TABLE KHACHHANG
ALTER COLUMN LOAIKH VARCHAR(50)
/*cau 7*/
ALTER TABLE SANPHAM
ADD CONSTRAINT CHK_DVT CHECK(DVT IN ('cay', 'hop', 'quyen', 'chuc', 'cai'))
GO
/*cau 8*/

ALTER TABLE SANPHAM
ADD CONSTRAINT CK_GIA CHECK(GIA >=500)
GO
/*cau 9*/
ALTER TABLE CTHD
ADD CONSTRAINT CK_CTHD CHECK(SL >=1)


GO
/* cau 10 */
ALTER TABLE KHACHHANG
ADD CONSTRAINT CK_NGAYDK CHECK (NGDK > NGSINH)
/*PHAN 2*/
/*CAU 1*/
SET DATEFORMAT dmy;
INSERT INTO NHANVIEN (MANV, HOTEN, SODT, NGVL) VALUES ('NV01', 'Nguyen Nhu Nhut', '0927345678',
'13/4/2006')
INSERT INTO NHANVIEN (MANV, HOTEN, SODT, NGVL) VALUES ('NV02', 'Le Thi Phi Yen', '0987567390',
'21/4/2006')
INSERT INTO NHANVIEN (MANV, HOTEN, SODT, NGVL) VALUES ('NV03', 'Nguyen Van B', '0997047382',
'27/4/2006')
INSERT INTO NHANVIEN (MANV, HOTEN, SODT, NGVL) VALUES ('NV04', 'Ngo Thanh Tuan', '0913758498',
'24/6/2006')
INSERT INTO NHANVIEN (MANV, HOTEN, SODT, NGVL) VALUES ('NV05', 'Nguyen Thi Truc Thanh',
'0918590387', '20/7/2006')
INSERT INTO KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES ('KH01',
'Nguyen Van A', '731, Tran Hung Dao, Q5, TPHCM', '08823451', '22/10/1960', 13060000, '22/07/2006')
INSERT INTO KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES ('KH02',
'Tran Ngoc Han', '23/5 Nguyen Trai, Q5, TpHCM', '0908256478', '03/04/1974', 280000, '30/07/2006')
INSERT INTO KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES ('KH03',

'Tran Ngoc Linh', '45 Nguyen Canh Chan, Q1, TpHCM', '0938776266', '12/06/1980', 3860000, '05/08/2006')
INSERT INTO KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES ('KH04',
'Tran Minh Long', '50/34 Le Dai hanh, Q10, TpHCM', '0917325476', '09/03/1965', 250000, '02/10/2006')
INSERT INTO KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES ('KH05',
'Le Nhat Minh', '34 Truong Dinh, Q3, TPHCM', '08246108', '10/03/1960', 21000, '28/10/2006')
INSERT INTO KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES ('KH06',
'Le Hoai Thuong', '227 Nguyen Van Cu, Q5, TpHCM', '08631738', '31/12/1981', 915000, '24/11/2006')
INSERT INTO KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES ('KH07',
'Nguyen Van Tam', '32/3 Tran Binh Trong, Q5, TpHCM', '0916783565', '06/04/1971', 12500, '01/12/2006')
INSERT INTO KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES ('KH08',
'Phan Thi Thanh', '45/2 An Duong Vuong, Q5, TPHCM', '0938435756', '10/01/1971', 365000, '13/12/2006')
INSERT INTO KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES ('KH09',
'Le Ha Vinh', '873 Le Hong Phong, Q5, TPHCM', '08654763', '03/09/1979', 70000, '14/01/2007')
INSERT INTO KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES ('KH10',
'Ha Duy Lap', '34/34B Nguyen Trai, Q1, TPHCM', '08768904', '02/05/1963', 67500, '16/01/2007')
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('BC01', 'But Chi', 'cay', 'Singapore',
3000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('BC02', 'But Chi', 'cay', 'Singapore',
5000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('BC03', 'But Chi', 'cay', 'Viet Nam',
3500)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('BC04', 'But Chi', 'hop', 'Viet Nam',
30000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('BB01', 'But bi', 'cay', 'Viet Nam',
5000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('BB02', 'But bi', 'cay', 'Trung Quoc',
7000)


INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('BB03', 'But bi', 'hop', 'Thai Lan',

100000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('TV01', 'Tap 100 giay mong', 'quyen',
'Trung Quoc', 2500)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('TV02', 'Tap 200 giay mong', 'quyen',
'Trung Quoc', 4500)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('TV03', 'Tap 100 giay tot', 'quyen', 'Viet
Nam', 3000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('TV04', 'Tap 200 giay tot', 'quyen', 'Viet
Nam', 5500)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('TV05', 'Tap 100 trang', 'chuc', 'Viet
Nam', 23000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('TV06', 'Tap 200 trang', 'chuc', 'Viet
Nam', 53000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('TV07', 'Tap 100 trang', 'chuc', 'Trung
Quoc', 34000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('ST01', 'So tay 500 trang', 'quyen',
'Trung Quoc', 40000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('ST02', 'So tay loai 1', 'quyen', 'Viet
Nam', 55000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('ST03', 'So tay loai 2', 'quyen', 'Viet
Nam', 51000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('ST04', 'So tay', 'quyen', 'Thai Lan',
55000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('ST05', 'So tay mong', 'quyen', 'Thai
Lan', 20000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('ST06', 'Phan viet bang', 'hop', 'Viet
Nam', 5000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('ST07', 'Phan khong bui', 'hop', 'Viet
Nam', 5000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('ST08', 'Bong bang', 'cai', 'Viet Nam',

1000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('ST09', 'But long', 'cay', 'Viet Nam',
5000)
INSERT INTO SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA) VALUES ('ST10', 'But long', 'cay', 'Trung Quoc',
7000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1001, '23/07/2006', 'KH01', 'NV01',
320000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1002, '12/08/2006', 'KH01', 'NV02',
840000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1003, '23/06/2006', 'KH02', 'NV01',
100000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1004, '01/09/2006', 'KH02', 'NV01',
180000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1005, '20/10/2006', 'KH01', 'NV02',
3800000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1006, '16/10/2006', 'KH01', 'NV03',
2430000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1007, '28/10/2006', 'KH03', 'NV03',
510000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1008, '28/10/2006', 'KH01', 'NV03',
440000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1009, '28/10/2006', 'KH03', 'NV04',
320000)


INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1010, '01/11/2006', 'KH01', 'NV01',
5200000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1011, '04/11/2006', 'KH04', 'NV03',
250000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1012, '30/11/2006', 'KH05', 'NV03',

21000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1013, '12/12/2006', 'KH06', 'NV01',
5000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1014, '31/12/2006', 'KH03', 'NV02',
3150000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1015, '01/01/2007', 'KH06', 'NV01',
910000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1016, '01/01/2007', 'KH07', 'NV02',
12500)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1017, '02/01/2007', 'KH08', 'NV03',
35000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1018, '13/01/2007', 'KH08', 'NV03',
330000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1019, '13/01/2007', 'KH01', 'NV03',
30000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1020, '14/01/2007', 'KH09', 'NV04',
70000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1021, '16/01/2007', 'KH10', 'NV04',
67500)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1022, '16/01/2007', Null, 'NV03',
7000)
INSERT INTO HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES (1023, '17/01/2007', Null, 'NV01',
330000)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1001, 'TV02', 10)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1001, 'ST01', 5)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1001, 'BC01', 5)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1001, 'BC02', 10)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1001, 'ST08', 10)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1002, 'BC04', 20)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1002, 'BB01', 20)

INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1002, 'BB02', 20)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1003, 'BB03', 10)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1004, 'TV01', 20)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1004, 'TV02', 10)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1004, 'TV03', 10)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1004, 'TV04', 10)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1005, 'TV05', 50)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1005, 'TV06', 50)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1001, 'TV07', 20)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1006, 'ST01', 30)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1006, 'ST02', 10)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1007, 'ST03', 10)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1008, 'ST04', 8)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1009, 'ST05', 10)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1010, 'TV07', 50)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1010, 'ST07', 50)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1010, 'ST08', 100)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1010, 'ST04', 50)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1010, 'TV03', 100)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1011, 'ST06', 50)


INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1012, 'ST07', 3)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1013, 'ST08', 5)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1014, 'BC02', 80)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1014, 'BB02', 100)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1014, 'BC04', 60)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1014, 'BB01', 50)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1015, 'BB02', 30)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1015, 'BB03', 7)

INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1016, 'TV01', 5)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1017, 'TV02', 1)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1017, 'TV03', 1)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1017, 'TV04', 5)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1018, 'ST04', 6)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1019, 'ST05', 1)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1019, 'ST06', 2)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1020, 'ST07', 10)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1021, 'ST08', 5)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1021, 'TV01', 7)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1021, 'TV02', 10)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1022, 'TV02', 10)
INSERT INTO CTHD (SOHD, MASP, SL) VALUES (1023, 'ST04', 6)
----------------------/*CAU 2*/
--sao chep SANPHAM1 tu SANPHAM
SELECT * INTO SANPHAM1 FROM SANPHAM
SELECT * INTO KHACHHANG1 FROM KHACHHANG
/*CAU 3*/
--Cap nhat gia cho hang Thai Lan
UPDATE SANPHAM1 SET GIA = GIA * 1.05 WHERE NUOCSX = 'Thai Lan'
/*Cau 4*/
--Cap nhat gia cho hang Thai Lan
UPDATE SANPHAM1 SET GIA = GIA * 0.95 WHERE NUOCSX = 'Trung Quoc' AND GIA < 10000
/*Cau 5*/
UPDATE KHACHHANG1 SET LOAIKH = 'Vip' WHERE (NGDK < '20070101' AND DOANHSO > 1000000) OR
(NGDK >= '20070101' AND DOANHSO > 2000000)
/*PHAN 3*/
/*Cau 1: In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất.*/
--SELECT MASP, TENSP FROM SANPHAM WHERE NUOCSX = 'Trung Quoc'
/*Cau 2: In ra danh sách các sản phẩm (MASP, TENSP) có đơn vị tính là “cay”, ”quyen”.*/

--SELECT MASP, TENSP FROM SANPHAM WHERE DVT = 'cay' OR DVT = 'quyen'
/*Cau 3: In ra danh sách các sản phẩm (MASP,TENSP) có mã sản phẩm bắt đầu là “B” và kết thúc là “01”.*/
--SELECT MASP, TENSP FROM SANPHAM WHERE SUBSTRING(MASP, 1, 1) = 'B' AND SUBSTRING(MASP,
3, 4) = '01'
/*Cau 4: In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quốc” sản xuất có giá từ 30.000 đến
40.000.*/
--SELECT MASP, TENSP FROM SANPHAM WHERE NUOCSX = 'Trung Quoc' AND (GIA >= 30000 AND GIA
<= 40000)
/*Cau 5: In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” hoặc “Thai Lan” sản xuất có giá từ
30.000 đến 40.000.
*/
--SELECT MASP, TENSP FROM SANPHAM WHERE (NUOCSX = 'Trung Quoc' OR NUOCSX = 'Thai Lan')
AND (GIA >= 30000 AND GIA <= 40000)
/*Cau 6: In ra các số hóa đơn, trị giá hóa đơn bán ra trong ngày 1/1/2007 và ngày 2/1/2007.*/
--SELECT SOHD, TRIGIA FROM HOADON WHERE NGHD >= '20070101' AND NGHD <= '20070102'
/*Cau 7: In ra các số hóa đơn, trị giá hóa đơn trong tháng 1/2007, sắp xếp theo ngày (tăng dần) và trị giá của
hóa đơn (giảm dần).


*/
/*
SELECT SOHD, TRIGIA FROM HOADON WHERE NGHD >= '20070101' AND NGHD <= '20070131'
ORDER BY NGHD ASC, TRIGIA DESC;
*/
/*Cau 8: In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2007.*/
/*
SELECT KHACHHANG.MAKH, KHACHHANG.HOTEN FROM KHACHHANG
INNER JOIN HOADON
ON KHACHHANG.MAKH = HOADON.MAKH
WHERE (HOADON.NGHD = '20070101')

*/
/*Cau 9: In ra số hóa đơn, trị giá các hóa đơn do nhân viên có tên “Nguyen Van B” lập trong ngày
28/10/2006.
*/
/*
SELECT HOADON.SOHD, HOADON.TRIGIA FROM HOADON
INNER JOIN NHANVIEN
ON HOADON.MANV = NHANVIEN.MANV
WHERE NHANVIEN.HOTEN = 'Nguyen Van B' AND HOADON.NGHD = '20061028'
*/
/*Cau 10: In ra danh sách các sản phẩm (MASP,TENSP) được khách hàng có tên “Nguyen Van A” mua trong
tháng 10/2006.
*/
/*
SELECT SANPHAM.MASP, SANPHAM.TENSP FROM HOADON
INNER JOIN CTHD
ON HOADON.SOHD = CTHD.SOHD
INNER JOIN SANPHAM
ON SANPHAM.MASP = CTHD.MASP
INNER JOIN KHACHHANG
ON KHACHHANG.MAKH = HOADON.MAKH
WHERE KHACHHANG.HOTEN = 'Nguyen Van A' AND HOADON.NGHD >= '20061001' AND
HOADON.NGHD <= '20061031'
*/
/*Cau 11: Tìm các số hóa đơn đã mua sản phẩm có mã số “BB01” hoặc “BB02”*/
/*
SELECT DISTINCT HOADON.SOHD FROM HOADON
INNER JOIN CTHD
ON HOADON.SOHD = CTHD.SOHD
WHERE CTHD.MASP = 'BB01' OR CTHD.MASP = 'BB02'

*/
/*Cau 12: Tìm các số hóa đơn đã mua sản phẩm có mã số “BB01” hoặc “BB02”, mỗi sản phẩm mua với số
lượng từ 10 đến 20.*/
/*
SELECT DISTINCT HOADON.SOHD FROM HOADON
INNER JOIN CTHD
ON HOADON.SOHD = CTHD.SOHD
WHERE (CTHD.MASP = 'BB01' OR CTHD.MASP = 'BB02') AND (CTHD.SL >= 10 AND CTHD.SL <= 20)
*/
/*Cau 13: Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có mã số “BB01” và “BB02”, mỗi sản phẩm mua với
số lượng từ 10 đến 20.*/
/*
SELECT SOHD FROM CTHD A
WHERE A.MASP = 'BB01' AND A.SL >= 10 AND A.SL <= 20 AND EXISTS(
SELECT * FROM CTHD B


WHERE B.MASP = 'BB02' AND B.SL >= 10 AND B.SL <= 20 AND A.SOHD = B.SOHD
)
*/
/*Cau 14: In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất hoặc các sản phẩm được
bán ra trong ngày 1/1/2007.*/
/*
SELECT DISTINCT CTHD.MASP, SANPHAM.TENSP FROM CTHD
INNER JOIN SANPHAM
ON CTHD.MASP = SANPHAM.MASP
INNER JOIN HOADON
ON CTHD.SOHD = HOADON.SOHD
WHERE NUOCSX = 'Trung Quoc' OR NGHD = '20070101'
*/

/*Cau 15: In ra danh sách các sản phẩm (MASP,TENSP) không bán được.*/
/*
SELECT DISTINCT MASP, TENSP FROM SANPHAM
EXCEPT
SELECT DISTINCT SANPHAM.MASP, TENSP FROM SANPHAM
INNER JOIN CTHD
ON SANPHAM.MASP = CTHD.MASP
*/
/*Cau 16: In ra danh sách các sản phẩm (MASP,TENSP) không bán được trong năm 2006.*/
/*
SELECT DISTINCT MASP, TENSP FROM SANPHAM
EXCEPT
SELECT DISTINCT SANPHAM.MASP, TENSP FROM SANPHAM
INNER JOIN CTHD
ON SANPHAM.MASP = CTHD.MASP
INNER JOIN HOADON
ON CTHD.SOHD = HOADON.SOHD
WHERE HOADON.NGHD >= '20060101' AND HOADON.NGHD <= '20061231'
*/
/*Cau 17 In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất không bán được trong
năm 2006.
*/
/*
SELECT DISTINCT SANPHAM.MASP, SANPHAM.TENSP FROM SANPHAM
WHERE SANPHAM.NUOCSX = 'Trung Quoc'
EXCEPT
SELECT DISTINCT SANPHAM.MASP, SANPHAM.TENSP FROM SANPHAM
INNER JOIN CTHD
ON SANPHAM.MASP = CTHD.MASP
INNER JOIN HOADON

ON CTHD.SOHD = HOADON.SOHD
WHERE HOADON.NGHD >= '20060101' AND HOADON.NGHD <= '20061231'
*/
/*Cau 18: Tìm số hóa đơn đã mua tất cả các sản phẩm do Singapore sản xuất*/
/*Cach 1:
SELECT H.SOHD FROM HOADON H
WHERE NOT EXISTS(
SELECT * FROM SANPHAM S
WHERE NUOCSX = 'SINGAPORE' AND NOT EXISTS(
SELECT * FROM CTHD C
WHERE C.SOHD = H.SOHD AND C.MASP = S.MASP
)
)


*/
/*Cach 2:
DECLARE @Cau18 int;
SET @Cau18 = (
SELECT COUNT(SANPHAM.MASP) FROM SANPHAM
WHERE SANPHAM.NUOCSX = 'Singapore'
)
SELECT HOADON.SOHD, COUNT(*) AS COUNT FROM HOADON
INNER JOIN CTHD
ON HOADON.SOHD = CTHD.SOHD
INNER JOIN SANPHAM
ON CTHD.MASP = SANPHAM.MASP
WHERE SANPHAM.NUOCSX = 'Singapore'
GROUP BY HOADON.SOHD
HAVING COUNT(*) = @Cau18

*/
/*Cau 19: Tìm số hóa đơn trong năm 2006 đã mua ít nhất tất cả các sản phẩm do Singapore sản xuất*/
/*
SELECT H.SOHD FROM HOADON
WHERE YEAR(NGHD) = 2006 AND NOT EXISTS(
SELECT * FROM SANPHAM
WHERE NUOCSX = 'Singapore' AND NOT EXISTS(
SELECT * FROM CTHD
WHERE CTHD.SOHD = HOADON.SOHD AND CTHD.MASP = SANPHAM.MASP
)
)
*/
/*Cau 20: Có bao nhiêu hóa đơn không phải của khách hàng đăng ký thành viên mua?*/
/*
SELECT COUNT(*) FROM HOADON
WHERE HOADON.MAKH IS NULL
*/
/*Cau 21: Có bao nhiêu sản phẩm khác nhau được bán ra trong năm 2006?*/
/*
SELECT COUNT(DISTINCT MASP) FROM CTHD
INNER JOIN HOADON
ON CTHD.SOHD = HOADON.SOHD
WHERE YEAR(HOADON.NGHD) = 2006
*/
/*Cau 22: Cho biết trị giá hóa đơn cao nhất, thấp nhất là bao nhiêu ?*/
--SELECT MAX(HOADON.TRIGIA) AS MAX, MIN(HOADON.TRIGIA) AS MIN FROM HOADON
/*Cau 23: Trị giá trung bình của tất cả các hóa đơn được bán ra trong năm 2006 là bao nhiêu?*/
/*
SELECT AVG(HOADON.TRIGIA) FROM HOADON
WHERE YEAR(HOADON.NGHD) = 2006

*/
/*Cau 24: Tính doanh thu bán hàng trong năm 2006.*/
/*
SELECT SUM(HOADON.TRIGIA) FROM HOADON
WHERE YEAR(HOADON.NGHD) = 2006
*/
/*Cau 25: Tìm số hóa đơn có trị giá cao nhất trong năm 2006.*/
/*
SELECT MAX(HOADON.TRIGIA) FROM HOADON
WHERE YEAR(HOADON.NGHD) = 2006
*/


/*Cau 26: Tìm họ tên khách hàng đã mua hóa đơn có trị giá cao nhất trong năm 2006*/
/*
SELECT KHACHHANG.HOTEN FROM HOADON
INNER JOIN KHACHHANG
ON KHACHHANG.MAKH = HOADON.MAKH
WHERE YEAR(HOADON.NGHD) = 2006 AND HOADON.TRIGIA = (SELECT MAX(HOADON.TRIGIA) FROM
HOADON WHERE YEAR(HOADON.NGHD) = 2006)
*/
/*Cau 27: In ra danh sách 3 khách hàng (MAKH, HOTEN) có doanh số cao nhất*/
/*
SELECT TOP 3 KHACHHANG.MAKH, KHACHHANG.HOTEN FROM KHACHHANG
ORDER BY KHACHHANG.DOANHSO DESC
*/
/*Cau 28: In ra danh sách các sản phẩm (MASP, TENSP) có giá bán bằng 1 trong 3 mức giá cao nhất.*/
/*
SELECT MASP, TENSP FROM SANPHAM
WHERE GIA IN (SELECT DISTINCT TOP 3 GIA FROM SANPHAM

ORDER BY
GIA DESC)
*/
/*Cau 29: In ra danh sách các sản phẩm (MASP, TENSP) do “Thai Lan” sản xuất có giá bằng 1 trong 3 mức
giá cao nhất (của tất cả các sản phẩm). */
/*
SELECT MASP, TENSP FROM SANPHAM
WHERE GIA IN (SELECT DISTINCT TOP 3 GIA FROM SANPHAM
ORDER BY
GIA DESC)
AND NUOCSX = 'Thai Lan'
*/
/*Cau 30: In ra danh sách các sản phẩm (MASP, TENSP) do “Trung Quoc” sản xuất có giá bằng 1 trong 3 mức
giá cao nhất (của sản phẩm do “Trung Quoc” sản xuất).*/
/*
SELECT MASP, TENSP FROM SANPHAM S
WHERE GIA IN (SELECT DISTINCT TOP 3 GIA FROM SANPHAM SS
WHERE SS.NUOCSX = 'Trung Quoc'
ORDER BY GIA DESC
)
AND S.NUOCSX = 'Trung Quoc'
*/
/*Cau 31: In ra danh sách 3 khách hàng có doanh số cao nhất (sắp xếp theo kiểu xếp hạng) */
/*
SELECT TOP 3 MAKH, HOTEN FROM KHACHHANG
ORDER BY DOANHSO DESC
*/
/*Cau 32: Tính tổng số sản phẩm do “Trung Quoc” sản xuất. */
/*
SELECT COUNT(NUOCSX) FROM SANPHAM

WHERE NUOCSX = 'Trung Quoc'
*/
/*Cau 33: Tính tổng số sản phẩm của từng nước sản xuất. */
/*
SELECT NUOCSX, COUNT(*) FROM SANPHAM
GROUP BY NUOCSX
*/
/*Cau 34: Với từng nước sản xuất, tìm giá bán cao nhất, thấp nhất, trung bình của các sản phẩm.*/
/*


SELECT NUOCSX, MAX(SANPHAM.GIA) AS GIACAONHAT, MIN(SANPHAM.GIA) AS GIATHAPNHAT,
AVG(SANPHAM.GIA) AS GIATRUNGBINH FROM SANPHAM
GROUP BY NUOCSX
*/
/*Cau 35: Tính doanh thu bán hàng mỗi ngày.*/
/*
SELECT NGHD, SUM(TRIGIA) FROM HOADON
GROUP BY NGHD
*/
/*Cau 36: Tính tổng số lượng của từng sản phẩm bán ra trong tháng 10/2006.*/
/*
SELECT MASP, SUM(SL) FROM CTHD
INNER JOIN HOADON
ON CTHD.SOHD = HOADON.SOHD
WHERE NGHD >= '20061001' AND NGHD < '20061101'
GROUP BY MASP
*/
/*Cau 37: Tính doanh thu bán hàng của từng tháng trong năm 2006.*/
/*

SELECT MONTH(NGHD) AS AA, SUM(TRIGIA) FROM HOADON
WHERE YEAR(NGHD) = 2006
GROUP BY MONTH(NGHD)
*/
/*Cau 38: Tìm hóa đơn có mua ít nhất 4 sản phẩm khác nhau.*/
/*
SELECT HOADON.SOHD FROM HOADON
INNER JOIN CTHD
ON HOADON.SOHD = CTHD.SOHD
GROUP BY HOADON.SOHD
HAVING COUNT(*) >= 4
*/
/*Cau 39: Tìm hóa đơn có mua 3 sản phẩm do “Viet Nam” sản xuất (3 sản phẩm khác nhau).*/
/*
SELECT SOHD FROM CTHD
INNER JOIN SANPHAM
ON CTHD.MASP = SANPHAM.MASP
WHERE NUOCSX = 'Viet Nam'
GROUP BY SOHD
HAVING COUNT(*) >= 3
*/
/*Cau 40: Tìm khách hàng (MAKH, HOTEN) có số lần mua hàng nhiều nhất.*/
/*
SELECT TOP 1 KHACHHANG.MAKH, HOTEN FROM KHACHHANG
INNER JOIN HOADON
ON HOADON.MAKH = KHACHHANG.MAKH
GROUP BY KHACHHANG.MAKH, KHACHHANG.HOTEN
ORDER BY COUNT(DISTINCT SOHD) DESC
*/
/*Cau 40: Tìm khách hàng (MAKH, HOTEN) có số lần mua hàng nhiều nhất.*/

/*
SELECT TOP 1 KHACHHANG.MAKH, HOTEN FROM KHACHHANG
INNER JOIN HOADON
ON HOADON.MAKH = KHACHHANG.MAKH
GROUP BY KHACHHANG.MAKH, KHACHHANG.HOTEN
ORDER BY COUNT(DISTINCT SOHD) DESC
*/


/*Cau 41: Tháng mấy trong năm 2006, doanh số bán hàng cao nhất ?*/
/*
SELECT TOP 1 MONTH(NGHD), SUM(TRIGIA) FROM HOADON
WHERE YEAR(NGHD) = 2006
GROUP BY MONTH(NGHD)
ORDER BY SUM(TRIGIA) DESC
*/
/*Cau 42: Tìm sản phẩm (MASP, TENSP) có tổng số lượng bán ra thấp nhất trong năm 2006.*/
/*
SELECT TOP 1 SANPHAM.MASP, SANPHAM.TENSP FROM CTHD
INNER JOIN SANPHAM
ON CTHD.MASP = SANPHAM.MASP
INNER JOIN HOADON
ON CTHD.SOHD = HOADON.SOHD
WHERE YEAR(NGHD) = 2006
GROUP BY SANPHAM.MASP, SANPHAM.TENSP
ORDER BY SUM(SL) ASC
*/
/*Cau 43: Mỗi nước sản xuất, tìm sản phẩm (MASP,TENSP) có giá bán cao nhất.*/
/*
DROP TABLE #CAU43

SELECT NUOCSX, MAX(GIA) GIATOIDA INTO #CAU43 FROM SANPHAM S
GROUP BY NUOCSX
SELECT #CAU43.NUOCSX, MASP, TENSP FROM #CAU43
INNER JOIN SANPHAM
ON #CAU43.GIATOIDA = SANPHAM.GIA
WHERE #CAU43.NUOCSX = SANPHAM.NUOCSX
*/
/*Cau 44: Tìm nước sản xuất sản xuất ít nhất 3 sản phẩm có giá bán khác nhau.*/
/*
SELECT NUOCSX, COUNT(DISTINCT GIA) FROM SANPHAM
GROUP BY NUOCSX
HAVING COUNT(DISTINCT GIA) >= 3
*/
/*Cau 45: *Trong 10 khách hàng có doanh số cao nhất, tìm khách hàng có số lần mua hàng nhiều nhất.*/
/*
DROP TABLE #Cau45A
DROP TABLE #Cau45B
SELECT MAKH, COUNT(MAKH) SOLANMUAHANG INTO #Cau45A FROM HOADON
WHERE MAKH IS NOT NULL
GROUP BY MAKH
ORDER BY SOLANMUAHANG DESC
SELECT TOP 10 MAKH, DOANHSO INTO #Cau45B FROM KHACHHANG
ORDER BY DOANHSO DESC
SELECT TOP 1 #Cau45A.MAKH FROM #Cau45A
INNER JOIN #Cau45B
ON #Cau45A.MAKH = #Cau45B.MAKH
*/






×