Bài tập SQL về quản lý bán hàng – Tài liệu text

Bài tập SQL về 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 (140.11 KB, 10 trang )

• Bảng NHACUNGCAP lưu trữ dữ liệu về những đối tác phân phối hàng cho
tổ chức.

Bảng MA
THANG lưu trữ dữ liệu về những mặt hàng hiện với trong tổ chức.
• Bảng LOAIHANG phân loại những mặt hàng hiện với.
• Bảng NHANVIEN với dữ liệu là thông tin về những viên chức làm việc trong
tổ chức.

Bảng KH
ACHHANG được sử dụng để lưu giữ thông tin về những khách hàng
của tổ chức.
Khách hàng đặt hàng cho tổ chức thông qua những đơn đặt hàng. Thông tin
chung về những đơn đặt hàng được lưu trữ trong bảng DONDATHANG (Mỗi
một đơn đặt hàng phải do một viên chức của tổ chức lập và do đó bảng này
với quan hệ với bảng NHANVIEN)
• Thông tin chi tiết của những đơn đặt hàng (đặt sắm mặt hàng gì, số lượng, giá
cả, ) được lưu trữ trong bảng CHITIETDATHANG. Bảng này với quan hệ
với hai bảng DONDATHANG và MATHANG.
Sử dụng câu lệnh SELECT để viết những yêu cầu truy vấn dữ liệu sau đây:
2. 1 Cho biết danh sách những đối tác phân phối hàng cho tổ chức.
2. 2 Mã hàng, tên hàng và số lượng của những mặt hàng hiện với trong tổ chức.
2. 3 Họ tên và liên hệ và năm khởi đầu làm việc của những viên chức trong tổ chức.
2. 4 Liên hệ và điện thoại của nhà phân phối với tên giao dịch VINAMILK là gì?
2. 5 Cho biết mã và tên của những mặt hàng với giá to hơn 100000 và số lượng hiện với
ít hơn 50.
2. 6 Cho biết mỗi mặt hàng trong tổ chức do người nào phân phối.
2. 7 Đơn vị Việt Tiến đã phân phối những mặt hàng nào?
2. 8 Loại hàng thực phẩm do những tổ chức nào phân phối và liên hệ của những tổ chức
đó là gì?
2. 9 Những khách hàng nào (tên giao dịch) đã đặt sắm mặt hàng Sữa hộp XYZ của

tổ chức?
2. 10 Đơn đặt hàng số 1 do người nào đặt và do viên chức nào lập, thời kì và địa điểm giao
hàng là ở đâu?
2. 11 Hãy cho biết số tiền lương mà tổ chức phải trả cho mỗi viên chức là bao nhiêu
(lương = lương cơ bản + phụ cấp).
2. 12 Trong đơn đặt hàng số 3 đặt sắm những mặt hàng nào và số tiền mà khách hàng
phải trả cho mỗi mặt hàng là bao nh iêu (số tiền phải trả được tính theo công thức
SOLUONG×GIABAN – SOLUONG×GIABAN×MUCGIAMGIA/100)
2. 13 Hãy cho biết với những khách hàng nào lại chính là đối tác phân phối hàng của
tổ chức (tức là với cùng tên giao dịch).
2. 14 Trong tổ chức với những viên chức nào với cùng ngày sinh?
2. 15 Những đơn đặt hàng nào yêu cầu giao hàng ngay tại tổ chức đặt hàng và những
đơn đó là của tổ chức nào?
2. 16 Cho biết tên tổ chức, tên giao dịch, liên hệ và điện thoại của những khách hàng và
những nhà phân phối hàng cho tổ chức.
2.17. Những mặt hàng nào chưa từng được khách hàng đặt sắm
2. 18 Những viên chức nào của tổ chức chưa từng lập bất kỳ một hoá đơn đặt hàng
nào?
2. 19 Những viên chức nào của tổ chức với lương cơ bản cao nhất?
2. 20 Tổng số tiền mà khách hàng phải trả cho mỗi đơn đặt hàng là bao nhiêu?
2. 21 Trong năm 2003, những mặt hàng nào chỉ được đặt sắm đúng một lần.
2. 22 Hãy cho biết mỗi một khách hàng đã phải bỏ ra bao nhiêu tiền để đặt sắm hàng
của tổ chức?
2. 23 Mỗi một viên chức của tổ chức đã lập bao nhiêu đơn đặt hàng (nếu viên chức
chưa hề lập một hoá đơn nào thì cho kết quả là 0)
2. 24 Cho biết tổng số tiền hàng mà shop thu được trong mỗi tháng của năm 2003
(thời được gian tính theo ngày đặt hàng).
2. 25 Hãy cho biết tổng số tiền lời mà tổ chức thu được từ mỗi mặt hàng trong năm
2003.
2. 26 Hãy cho biết tổng số lượng hàng của mỗi mặt hàng mà tổ chức đã với (tổng số

lượng hàng hiện với và đã bán).
2. 27 Viên chức nào của tổ chức bán được số lượng hàng nhiều nhất và số lượng hàng
bán được của những viên chức này là bao nhiêu?
2. 28 Đơn đặt hàng nào với số lượng hàng được đặt sắm ít nhất?
2. 29 Số tiền nhiều nhất mà mỗi khách hàng đã từng bỏ ra để đặt hàng trong những đơn
đặt hàng là bao nhiêu?
2. 30 Mỗi một đơn đặt hàng đặt sắm những mặt hàng nào và tổng số tiền mà mỗi đơn
đặt hàng phải trả là bao nhiêu?
2. 31 Hãy cho biết mỗi một loại hàng bao gồm những mặt hàng nào, tổng số lượng
hàng của mỗi loại và tổng số lượng của tất cả những mặt hàng hiện với trong tổ chức
là bao nhiêu?
2. 32 Thống kê xem trong năm 2003, mỗi một mặt hàng trong mỗi tháng và trong cả
năm bán được với số lượng bao nhiêu
Yêu cầu: Kết quả được hiển thị dưới dạng bảng, hai cột cột đầu là mã hàng và
tên hàng, những cột còn lại tương ứng với những tháng từ 1 tới 12 và cả năm. Như
vậy mỗi dòng trong kết quả cho biết số l ượng hàng bán được mỗi tháng và trong
cả năm của mỗi mặt hàng.
Sử dụng câu lệnh UPDATE để thực hiện những yêu cầu sau:
2. 33 Cập nhật lại trị giá trường NGAYCHUYENHANG của những bản ghi với
NGAYCHUYENHANG chưa xác định (NULL) trong bảng DONDATHANG
bằng với trị giá của trường NGAYDATHANG.
2. 34 Tăng số lượng hàng của những mặt hàng do tổ chức VINAMILK phân phối lên
gấp đôi.
2. 35 Cập nhật trị giá của trường NOIGIAOHANG trong bảng DONDATHANG bằng
liên hệ của khách hàng đối với những đơn đặt hàng chưa xác định được nơi giao
hàng (trị giá trường NOIGIAOHANG bằng NULL).
2. 36 Cập nhật lại dữ liệu trong bảng KHACHHANG sao cho nếu tên tổ chức và tên
giao dịch của khách hàng trùng với tên tổ chức và tên giao dịch của một nhà
phân phối nào đó thì liên hệ, điện thoại, fax và e-mail p
hải giống nhau.

2. 37 Tăng lương lên gấp rưỡi cho những viên chức bán được số lượng hàng nhiều
hơn 100 trong năm 2003.
2. 38 Tăng phụ cấp lên bằng 50% lương cho những viên chức bán được hàng nhiều
nhất.
2. 39 Giảm 25% lương của những viên chức trong năm 2003 ko lập được bất kỳ
đơn đặt hàng nào.
2. 40 Giả sử trong bảng DONDATHANG với thêm trường SOTIEN cho biết số tiền
mà khách hàng phải trả trong mỗi đơn đặt hàng. Hãy tính trị giá cho trường này.
Thực hiện những yêu cầu dưới đây bằng câu lệnh DELETE.
2. 41 Xoá khỏi bảng NHANVIEN những viên chức đã làm việc trong tổ chức quá 40
năm.
2. 42 Xoá những đơn đặt hàng trước năm 2000 ra khỏi cơ sở vật chất dữ liệu.
2. 43 Xoá khỏi bảng LOAIHANG những loại hàng hiện ko với mặt hàng.
2. 44 Xoá khỏi bảng KHACHHANG những khách hàng hiện ko với bất kỳ đơn đặt
hàng nào cho tổ chức.
2. 45 Xoá khỏi bảng MATHANG những mặt hàng với số lượng bằng 0 và ko được
đặt sắm trong bất kỳ đơn đặt hàng nào.
 Lời giải:
Những phép nối được sử dụng trong những truy vấn dưới đây sử dụng cú pháp của
SQL2.
2.1 SELECT macongty,tencongty,tengiaodich
FROM nhacungcap
2.2 SELECT mahang,tenhang,soluong
FROM mathang
2.3 SELECT ho,ten,year(ngaylamviec) AS namlamviec
FROM nhanvien
2.4 SELECT diachi,dienthoai
FROM nhacungcap
WHERE tengiaodich=’VINAMILK’
2.5 SELECT mahang,tenhang

FROM mathang
WHERE giahang>100000 AND soluong<50
2.6 SELECT mahang,tenhang,
nhacungcap.macongty,tencongty,tengiaodich
FROM mathang INNER JOIN nhacungcap
ON mathang.macongty=nhacungcap.macongty
2.7 SELECT mahang,tenhang
FROM mathang INNER JOIN nhacungcap
ON mathang.macongty=nhacungcap.macongty
WHERE tencongty=’Việt Tiến’
2.8 SELECT DISTINCT nhacungcap.macongty,tencongty,diachi
FROM (loaihang INNER JOIN mathang
ON loaihang.maloaihang=mathang.maloaihang)
INNER JOIN nhacungcap
ON mathang.macongty=nhacungcap. macongty
WHERE tenloaihang=’Thực phẩm’
2.9 SELECT DISTINCT tengiaodich
FROM ((mathang INNER JOIN chitietdathang
ON mathang.mahang=chitietdathang.mahang)
INNER JOIN dondathang
ON chitietdathang.sohoadon=dondathang.sohoadon)
INNER JOIN khachhang
ON dondathang.makhachhang=khachhang.makhachhang
WHERE tenhang=’Sữa hộp’
2.10 SELECT dondathang.manhanvien,ho,ten,
ngaygiaohang,noigiaohang
FROM nhanvien INNER JOIN dondathang
ON nhanvien.manhanvien=dondathang.manhanvien
WHERE sohoadon=1
2.11 SELECT manhanvien,ho,ten,

luongcoban + CASE
WHEN phucap IS NULL THEN 0
ELSE phucap
END AS luong
FR
OM nhanvie n
2.12 SELECT a.mahang,tenhang,
a.soluong*giaban*(1-
mucgiamgia/100) AS sotien
FROM chitietdathang AS a INNER JOIN mathang AS b
ON a.mahang=b.mahang
2.13 SELECT makhachhang,khachhang.tencongty,
khachhang.tengiaodich
FROM khachhang INNER JOIN nhacungcap
ON khachhang.tengiaodich=nhacungcap.tengiaodich
2.1
4 SELEC
T a.ho,a.ten,b.ho,b.ten,b.ngaysinh
FROM nhanvien a INNER JOIN nhanvien b
ON a.ngaysinh=b.ngaysinh AND
a.manhanvien<>b.manhanvien
2.15 SELECT sohoadon,tencongty,tengiaodich,
ngaydathang,noigiaohang
FROM dondathang INNER JOIN khachhang
ON dondathang.noigiaohang=khachhang.diachi
2.1
6 SELEC
T tencongty,tengiaodich,diachi,dienthoai
FROM khachhang
UNION ALL

SELECT tencongty,tengiaodich,diachi,dienthoai
FROM nhacungcap
2.17 SELECT mahang,tenhang
FROM mathang
WHERE NOT EXISTS (SELECT mahang FROM chitietdathang
WHERE mahang=mathang.mahang)
2.18 SELECT manhanvien,ho,ten
FROM nhanvien
WH
ERE N OT EXIST
S (SELECT manhanvien FROM dondathang
WHERE manhanvien=nhanvien.manhanvien)
2.19 SELECT manhanvien,ho,ten,luongcoban
FROM nhanvien
WHERE luongcoban=(SELECT MAX(luongcoban) FROM nhanvien)
2.20 SELECT dondathang.sohoadon,dondathang .makhachhang,
tencongt y,tengiaodich,
SUM(soluong*giaban-soluong*giaban*mucgiamgia/100)
FROM (khachhang INNER JOIN dondathang
ON khachhang.makhachhang=d ondathang.makhachhang)
INNER JOIN chitietdathang
ON dondathang.sohoadon=chitietdatha ng.sohoadon
GROUP BY dondathang.makhachhang,tencongty,
tengiaodich,donda thang.sohoadon
2.21 SELECT mathang.mahang,tenhang
FROM (mathang INNER JOIN chitietdathang
ON mathang.mahang=chitietdathang.mahang)
iNNER JOIN dondathang
ON chitietdathang.sohoadon=dondathang.sohoadon
WHERE YEAR(ngaydathang)=2003

GROUP BY mathang.mahang,tenhang
HAVING COUNT(chitietdathang.mahang)=1
2.22 SELECT khachhang.makhachhang,tencongty,tengiaodich,
SUM(soluong*giaban-soluong*giaban*mucgiamgia/100)
FROM (khachhang INNER JOIN dondathang
ON khachhang.makhachhang = dondathang.makhachhang)
INNER JOIN chitietdathang
ON dondathang.sohoadon=chitietdathang.sohoadon
GROUP BY khachhang.makhachhang,tencongty,tengiaodich
2.2
3 SELEC
T nhanvien.manhanvien,ho,ten,COUNT(sohoadon)
FROM nhanvien LEFT OUTER JOIN dondathang
ON nhanvien.manhanvien=dondathang.manhanvien
GROUP BY nhanvien.manhanvien,ho,ten
2.24 SELECT MONTH(ngaydathang) AS thang,
SUM(soluong*giaban-soluong*giaban*mucgiamgia/100)
FROM dondathang INNER JOIN chitietdathang
ON dondathang.sohoadon=chitietdathang.sohoadon
WHERE year(ngaydathang)=2003
GROUP BY month(ngaydathang)
2.25 SELECT c.mahang,tenhang,
SUM(b.soluong*giaban-b.soluong*giaban*mucgiamgia/100)-
SUM(b.soluong*giahang)
FROM (dondathang AS a INNER JOIN chitietdathang AS b
ON a.sohoadon=b.sohoadon)
INNER JOIN mathang AS c
ON b.mahang=c.mahang
WHERE YEAR(ngaydathang)=2003
GROUP BY c.mahang,tenhang

26. SELECT mathang.mahang,tenhang,
mathang.soluong +
CASE
WHEN SUM(chitietdathang.soluong) IS NULL THEN 0
ELSE SUM(chitietdathang.soluong)
END AS tongsoluong
FROM mathang LEFT OUTER JOIN chitietdathang
ON mathang.mahang=chitietdathang.mahang
GROUP BY mathang.mahang,tenhang,mathang.soluong
2.27 SELECT nhanvien.manhanvien,ho,ten,sum(soluong)
FROM (nhanvien INNER JOIN dondathang
ON nhanvien.manhanvien=dondathang.manhanvien)
INNER JOIN chitietdathang
ON dondathang.sohoadon=chitietdathang.sohoadon
GROUP BY nhanvien.manhanvien,ho,ten
HAVING sum(soluong)>=ALL(SELECT sum(soluong)
FROM (nhanvien INNER JOIN dondathang
ON nhanvien.manhanvien=dondathang.manhanvien)
INNER JOIN chitietdathang ON
dondathang.sohoadon=chitietdathang.sohoadon
GROUP BY nhanvien.manhanvien,ho,ten)
2.28 SELECT dondathang.sohoadon,SUM(soluong)
FROM dondathang INNER JOIN chitietdathang
ON dondathang.sohoadon=chitietdathang.sohoadon
GROUP BY dondathang.sohoadon
HAVING sum(soluong)<=ALL(SELECT sum(soluong)
FROM dondathang INNER JOIN chitietdathang
ON dondathang.sohoad on=chitietdathang.sohoadon
GROUP BY dondathang.sohoadon)
2.2 9

SELECT TOP 1
SUM(soluong*giaban-soluong*giaban*mucgiamgia/100)
FROM dondathang INNER JOIN chitietdathang
ON dondathang.sohoadon=chitietdathang.sohoadon
ORDER BY 1 DESC
2.30 SELECT a.sohoadon,b.mahang,tenhang,
b.soluong*giaban-b.soluong*giaban*mucgiamgia/100
FROM (dondathang AS a INNER JOIN chitietdathang AS b
ON a.sohoadon = b.sohoadon)
INNER JOIN mathang AS c ON b.mahang = c.mahang
ORDER BY a.sohoadon
COMPUTE SUM(b.soluong*giaban-
b.soluong*giaban*mucgiamgia/100) BY a.sohoadon
2.31 SELECT loaihang.maloaihang,tenloaihang,
mahang,tenhang,soluong
FROM loaihang INNER JOIN mathang
ON loaihang.maloaihang=mathang.malo aihang
ORDER BY loaihang.maloaihang
COMPUTE SUM(soluong) BY loaihang.maloaihang
COMPUTE SUM(soluong)
2.32 SELECT b.mahang,tenhang,
SUM(CASE MONTH(ngaydathang) WHEN 1 THEN b.soluong
ELSE 0 END) AS Thang1,
SUM(CASE MONTH(ngaydathang) WHEN 2 THEN b.soluong
ELSE 0 END) AS Thang2,
SUM(CASE MONTH(ngaydathang) WHEN 3 THEN b.soluong
ELSE 0 END) AS Thang3,
SUM(CASE MONTH(ngaydathang) WHEN 4 THEN b.soluong
ELSE 0 END) AS Thang4,
SUM(CASE MONTH(ngaydathang) WHEN 5 THEN b.soluong

ELSE 0 END) AS Thang5,
SUM(CASE MONTH(ngaydathang) WHEN 6 THEN b.soluong
ELSE 0 END) AS Thang6,
SUM(CASE MONTH(ngaydathang) WHEN 7 THEN b.soluong
ELSE 0 END) AS Thang7,
SUM(CASE MONTH(ngaydathang) WHEN 8 THEN b.soluong
ELSE 0 END) AS Thang8,
SUM(CASE MONTH(ngaydathang) WHEN 9 THEN b.soluong
ELSE 0 END) AS Thang9,
SUM(CASE MONTH(ngaydathang) WHEN 10 THEN b.soluong
ELSE 0 END) AS Thang10,
SUM(CASE MONTH(ngaydathang) WHEN 11 THEN b.soluong
ELSE 0 END) AS Thang11,
SUM(CASE MONTH(ngaydathang) WHEN 12 THEN b.soluong
ELSE 0 END) AS Thang12,
SUM(b.soluong) AS CaNam
FROM (dondathang AS a INNER JOIN chitietdathang AS b
ON a.sohoadon=b.sohoadon)
INNER JOIN mathang AS c ON b.mahang=c.mahang
WHERE YEAR(ngaydathang)=1996
GROUP BY b.mahang,tenhang
2.33 UPDATE dondathang
SET ngaychuyenhang = ngayda thang
WHERE ngaychuyenhang IS NULL
2.34 UPDATE mathang
SET soluong=soluong*2
FROM nhacungcap
WHERE nhacungcap.macongty=mathang.macongty AND
tencongty=’VINAMILK’
2.35 UPDATE dondathang

SET noigiaohang=diachi
FROM khachhang
WHERE dondathang.makhachhang=khachhang.makhachang AND
noigiaohang IS NULL
2.36 UPDATE khachhang
SET khachhang.diachi = nhacungcap.diachi,
khachhang.dienthoai = nhacungcap.dienthoai,
khachhang.fax = nhacungcap.fax,
khachhang.email = nhacungcap.email
FROM nhacungcap
WHERE khachhang.tencongty = nhacungcap.tencongty AND
khachhang.tengiaodich = nhacungcap.tengiaodich
2.37 UPDATE nhanvien
SET luongcoban=luongcoban*1.5
WHERE manhanvien =
(SELECT manhanvien
FROM dondathang INNER JOIN chitietdathang
ON dondathang.sohoadon=chitietdathang.sohoadon
WHERE manhanvien=nhanvien.manhanvien
GROUP BY manhanvien
HAVING SUM(soluong)>100)
2.38 UPDATE nhanvien
SET phucap=luongcoban/2
WHERE manhanvien IN
(SELECT manhanvien
FROM dondathang INNER JOIN chitietdathang
ON dondathang.sohoadon=chitietdathang.sohoadon
GROUP BY manhanvien
HAVING SUM(soluong)>=ALL
(SELECT SUM(soluong)

FROM dondathang INNER JOIN chitietdathang
ON dondathang.sohoadon=chitietdathang.sohoadon
GROUP BY manhanvien))
2.39 UPDATE nhanvien
SET luongcoban=luongcoban*0.85
WHERE NOT EXISTS (SELECT manhanvien
FROM dondathang
WHERE manhanvien=nhanvien.manhanvien)
2.40 UPDATE dondathang
SE
T sot ien
=
(SELECT SUM(soluong*giaban+soluong*giaban*mucgiamgia)
FROM chitietdathang
WHERE sohoadon=dondathang.sohoadon
GROUP BY sohoadon)
2.41 DELETE FROM nhanvien
WHERE DATEDIFF(YY,ngaylamviec,GETDATE())>40
2.42 DELETE FROM dondathang
WHERE ngaydathang<'1/1/2000'
2.43 DELETE FROM loaihang
WHERE NOT EXISTS (SELECT mahang
FROM mathang
WHERE maloaihang=loaihang.maloaihang)
2.44 DELETE FROM khachhang
WH
ERE NOT EXIST
S (SELECT sohoadon FROM dondathang
WHERE makhachhang=khachhang.makhachhang)
2.45 DELETE FROM mathang

WHERE soluong=0 AND
NOT EXISTS (SELECT sohoadon
FROM chitietdat hang
WHERE mahang=mathang.mahang)

tổ chức ? 2. 10 Đơn đặt hàng số 1 do người nào đặt và do viên chức cấp dưới nào lập, thời hạn và khu vực giaohàng là ở đâu ? 2. 11 Hãy cho biết số tiền lương mà tổ chức phải trả cho mỗi viên chức cấp dưới là bao nhiêu ( lương = lương cơ bản + phụ cấp ). 2. 12 Trong đơn đặt hàng số 3 đặt sắm những mẫu sản phẩm nào và số tiền mà khách hàngphải trả cho mỗi loại sản phẩm là bao nh iêu ( số tiền phải trả được tính theo công thứcSOLUONG × GIABAN – SOLUONG × GIABAN × MUCGIAMGIA / 100 ) 2. 13 Hãy cho biết với những người sắm nào lại chính là đối tác chiến lược cung ứng hàng củacông ty ( tức là với cùng tên trả tiền giao dịch ). 2. 14 Trong tổ chức với những viên chức cấp dưới nào với cùng ngày sinh ? 2. 15 Những đơn đặt hàng nào nhu yếu giao hàng ngay tại tổ chức đặt hàng và nhữngđơn đó là của tổ chức nào ? 2. 16 Cho biết tên tổ chức, tên trả tiền giao dịch, liên hệ và điện thoại cảm ứng của những người sắm vàcác nhà cung ứng hàng cho tổ chức. 2.17. Những mẫu sản phẩm nào chưa từng được người sắm đặt mua2. 18 Những viên chức cấp dưới nào của tổ chức chưa từng lập bất kể một hoá đơn đặt hàngnào ? 2. 19 Những viên chức cấp dưới nào của tổ chức với lương cơ bản cao nhất ? 2. 20 Tổng số tiền mà người sắm phải trả cho mỗi đơn đặt hàng là bao nhiêu ? 2. 21 Trong năm 2003, những loại sản phẩm nào chỉ được đặt sắm đúng một lần. 2. 22 Hãy cho biết mỗi một người sắm đã phải bỏ ra bao nhiêu tiền để đặt sắm hàngcủa tổ chức ? 2. 23 Mỗi một viên chức cấp dưới của tổ chức đã lập bao nhiêu đơn đặt hàng ( nếu nhân viênchưa hề lập một hoá đơn nào thì cho tác dụng là 0 ) 2. 24 Cho biết tổng số tiền hàng mà shop thu được trong mỗi tháng của năm 2003 ( thời được gian tính theo ngày đặt hàng ). 2. 25 Hãy cho biết tổng số tiền lời mà tổ chức thu được từ mỗi mẫu sản phẩm trong năm2003. 2. 26 Hãy cho biết tổng số lượng hàng của mỗi mẫu sản phẩm mà tổ chức đã với ( tổng sốlượng hàng hiện với và đã bán ). 2. 27 Viên chức nào của tổ chức bán được số lượng hàng nhiều nhất và số lượng hàngbán được của những viên chức cấp dưới này là bao nhiêu ? 2. 28 Đơn đặt hàng nào với số lượng hàng được đặt sắm tối thiểu ? 2. 29 Số tiền nhiều nhất mà mỗi người sắm đã từng bỏ ra để đặt hàng trong những đơnđặt hàng là bao nhiêu ? 2. 30 Mỗi một đơn đặt hàng đặt sắm những loại sản phẩm nào và tổng số tiền mà mỗi đơnđặt hàng phải trả là bao nhiêu ? 2. 31 Hãy cho biết mỗi một loại hàng gồm với những mẫu sản phẩm nào, tổng số lượnghàng của mỗi loại và tổng số lượng của tổng thể những loại sản phẩm hiện với trong công tylà bao nhiêu ? 2. 32 Thống kê xem trong năm 2003, mỗi một loại sản phẩm trong mỗi tháng và trong cảnăm bán được với số lượng bao nhiêuYêu cầu : Kết quả được hiển thị dưới dạng bảng, hai cột cột đầu là mã hàng vàtên hàng, những cột còn lại tương ứng với những tháng từ 1 tới 12 và cả năm. Nhưvậy mỗi dòng trong hiệu quả cho biết số l ượng hàng bán được mỗi tháng và trongcả năm của mỗi loại sản phẩm. Sử dụng câu lệnh UPDATE để thực thi những nhu yếu sau : 2. 33 Cập nhật lại trị giá trường NGAYCHUYENHANG của những bản ghi cóNGAYCHUYENHANG chưa xác lập ( NULL ) trong bảng DONDATHANGbằng với trị giá của trường NGAYDATHANG. 2. 34 Tăng số lượng hàng của những mẫu sản phẩm do tổ chức VINAMILK phân phối lêngấp đôi. 2. 35 Cập nhật trị giá của trường NOIGIAOHANG trong bảng DONDATHANG bằngđịa chỉ của người sắm so với những đơn đặt hàng chưa xác lập được nơi giaohàng ( trị giá trường NOIGIAOHANG bằng NULL ). 2. 36 Cập nhật lại tài liệu trong bảng KHACHHANG sao cho nếu tên tổ chức và têngiao dịch của người sắm trùng với tên tổ chức và tên trả tiền giao dịch của một nhàcung cấp nào đó thì liên hệ, điện thoại thông minh, fax và e-mail phải giống nhau. 2. 37 Tăng lương lên gấp rưỡi cho những viên chức cấp dưới bán được số lượng hàng nhiềuhơn 100 trong năm 2003.2. 38 Tăng phụ cấp lên bằng 50 % lương cho những viên chức cấp dưới bán được hàng nhiềunhất. 2. 39 Giảm 25 % lương của những viên chức cấp dưới trong năm 2003 ko lập được bất kỳđơn đặt hàng nào. 2. 40 Giả sử trong bảng DONDATHANG với thêm trường SOTIEN cho biết số tiềnmà người sắm phải trả trong mỗi đơn đặt hàng. Hãy tính trị giá cho trường này. Thực hiện những nhu yếu dưới đây bằng câu lệnh DELETE. 2. 41 Xoá khỏi bảng NHANVIEN những viên chức cấp dưới đã thao tác trong tổ chức quá 40 năm. 2. 42 Xoá những đơn đặt hàng trước năm 2000 ra khỏi cơ sở vật chất tài liệu. 2. 43 Xoá khỏi bảng LOAIHANG những loại hàng hiện ko với mặt hàng. 2. 44 Xoá khỏi bảng KHACHHANG những người sắm hiện ko với bất kể đơn đặthàng nào cho tổ chức. 2. 45 Xoá khỏi bảng MATHANG những loại sản phẩm với số lượng bằng 0 và ko đượcđặt sắm trong bất kể đơn đặt hàng nào.  Lời giải : Những phép nối được sử dụng trong những truy vấn dưới đây sử dụng cú pháp củaSQL2. 2.1 SELECT macongty, tencongty, tengiaodichFROM nhacungcap2. 2 SELECT mahang, tenhang, soluongFROM mathang2. 3 SELECT ho, ten, year ( ngaylamviec ) AS namlamviecFROM nhanvien2. 4 SELECT diachi, dienthoaiFROM nhacungcapWHERE tengiaodich = ‘ VINAMILK ‘ 2.5 SELECT mahang, tenhangFROM mathangWHERE giahang > 100000 AND soluong < 502.6 SELECT mahang, tenhang, nhacungcap.macongty, tencongty, tengiaodichFROM mathang INNER JOIN nhacungcapON mathang.macongty = nhacungcap. macongty2. 7 SELECT mahang, tenhangFROM mathang INNER JOIN nhacungcapON mathang.macongty = nhacungcap. macongtyWHERE tencongty = ' Việt Tiến ' 2.8 SELECT DISTINCT nhacungcap.macongty, tencongty, diachiFROM ( loaihang INNER JOIN mathangON loaihang.maloaihang = mathang.maloaihang ) INNER JOIN nhacungcapON mathang.macongty = nhacungcap. macongtyWHERE tenloaihang = ' Thực phẩm ' 2.9 SELECT DISTINCT tengiaodichFROM ( ( mathang INNER JOIN chitietdathangON mathang.mahang = chitietdathang.mahang ) INNER JOIN dondathangON chitietdathang.sohoadon = dondathang.sohoadon ) INNER JOIN khachhangON dondathang.makhachhang = khachhang. makhachhangWHERE tenhang = ' Sữa hộp ' 2.10 SELECT dondathang.manhanvien, ho, ten, ngaygiaohang, noigiaohangFROM nhanvien INNER JOIN dondathangON nhanvien.manhanvien = dondathang. manhanvienWHERE sohoadon = 12.11 SELECT manhanvien, ho, ten, luongcoban + CASEWHEN phucap IS NULL THEN 0ELSE phucapEND AS luongFROM nhanvie n2. 12 SELECT a.mahang, tenhang, a.soluong * giaban * ( 1 - mucgiamgia / 100 ) AS sotienFROM chitietdathang AS a INNER JOIN mathang AS bON a.mahang = b. mahang2. 13 SELECT makhachhang, khachhang.tencongty, khachhang. tengiaodichFROM khachhang INNER JOIN nhacungcapON khachhang.tengiaodich = nhacungcap. tengiaodich2. 14 SELECT a.ho, a.ten, b.ho, b.ten, b. ngaysinhFROM nhanvien a INNER JOIN nhanvien bON a.ngaysinh = b.ngaysinh ANDa. manhanvien < > b. manhanvien2. 15 SELECT sohoadon, tencongty, tengiaodich, ngaydathang, noigiaohangFROM dondathang INNER JOIN khachhangON dondathang.noigiaohang = khachhang. diachi2. 16 SELECT tencongty, tengiaodich, diachi, dienthoaiFROM khachhangUNION ALLSELECT tencongty, tengiaodich, diachi, dienthoaiFROM nhacungcap2. 17 SELECT mahang, tenhangFROM mathangWHERE NOT EXISTS ( SELECT mahang FROM chitietdathangWHERE mahang = mathang.mahang ) 2.18 SELECT manhanvien, ho, tenFROM nhanvienWHERE N OT EXISTS ( SELECT manhanvien FROM dondathangWHERE manhanvien = nhanvien.manhanvien ) 2.19 SELECT manhanvien, ho, ten, luongcobanFROM nhanvienWHERE luongcoban = ( SELECT MAX ( luongcoban ) FROM nhanvien ) 2.20 SELECT dondathang.sohoadon, dondathang. makhachhang, tencongt y, tengiaodich, SUM ( soluong * giaban-soluong * giaban * mucgiamgia / 100 ) FROM ( khachhang INNER JOIN dondathangON khachhang.makhachhang = d ondathang.makhachhang ) INNER JOIN chitietdathangON dondathang.sohoadon = chitietdatha ng. sohoadonGROUP BY dondathang.makhachhang, tencongty, tengiaodich, donda thang. sohoadon2. 21 SELECT mathang.mahang, tenhangFROM ( mathang INNER JOIN chitietdathangON mathang.mahang = chitietdathang.mahang ) iNNER JOIN dondathangON chitietdathang.sohoadon = dondathang. sohoadonWHERE YEAR ( ngaydathang ) = 2003GROUP BY mathang.mahang, tenhangHAVING COUNT ( chitietdathang.mahang ) = 12.22 SELECT khachhang.makhachhang, tencongty, tengiaodich, SUM ( soluong * giaban-soluong * giaban * mucgiamgia / 100 ) FROM ( khachhang INNER JOIN dondathangON khachhang.makhachhang = dondathang.makhachhang ) INNER JOIN chitietdathangON dondathang.sohoadon = chitietdathang. sohoadonGROUP BY khachhang.makhachhang, tencongty, tengiaodich2. 23 SELECT nhanvien.manhanvien, ho, ten, COUNT ( sohoadon ) FROM nhanvien LEFT OUTER JOIN dondathangON nhanvien.manhanvien = dondathang. manhanvienGROUP BY nhanvien.manhanvien, ho, ten2. 24 SELECT MONTH ( ngaydathang ) AS thang, SUM ( soluong * giaban-soluong * giaban * mucgiamgia / 100 ) FROM dondathang INNER JOIN chitietdathangON dondathang.sohoadon = chitietdathang. sohoadonWHERE year ( ngaydathang ) = 2003GROUP BY month ( ngaydathang ) 2.25 SELECT c.mahang, tenhang, SUM ( b.soluong * giaban-b.soluong * giaban * mucgiamgia / 100 ) – SUM ( b.soluong * giahang ) FROM ( dondathang AS a INNER JOIN chitietdathang AS bON a.sohoadon = b.sohoadon ) INNER JOIN mathang AS cON b.mahang = c. mahangWHERE YEAR ( ngaydathang ) = 2003GROUP BY c.mahang, tenhang26. SELECT mathang.mahang, tenhang, mathang.soluong + CASEWHEN SUM ( chitietdathang.soluong ) IS NULL THEN 0ELSE SUM ( chitietdathang.soluong ) END AS tongsoluongFROM mathang LEFT OUTER JOIN chitietdathangON mathang.mahang = chitietdathang. mahangGROUP BY mathang.mahang, tenhang, mathang. soluong2. 27 SELECT nhanvien.manhanvien, ho, ten, sum ( soluong ) FROM ( nhanvien INNER JOIN dondathangON nhanvien.manhanvien = dondathang.manhanvien ) INNER JOIN chitietdathangON dondathang.sohoadon = chitietdathang. sohoadonGROUP BY nhanvien.manhanvien, ho, tenHAVING sum ( soluong ) > = ALL ( SELECT sum ( soluong ) FROM ( nhanvien INNER JOIN dondathangON nhanvien.manhanvien = dondathang.manhanvien ) INNER JOIN chitietdathang ONdondathang. sohoadon = chitietdathang. sohoadonGROUP BY nhanvien.manhanvien, ho, ten ) 2.28 SELECT dondathang.sohoadon, SUM ( soluong ) FROM dondathang INNER JOIN chitietdathangON dondathang.sohoadon = chitietdathang. sohoadonGROUP BY dondathang. sohoadonHAVING sum ( soluong ) < = ALL ( SELECT sum ( soluong ) FROM dondathang INNER JOIN chitietdathangON dondathang.sohoad on = chitietdathang. sohoadonGROUP BY dondathang.sohoadon ) 2.2 9SELECT TOP 1SUM ( soluong * giaban-soluong * giaban * mucgiamgia / 100 ) FROM dondathang INNER JOIN chitietdathangON dondathang.sohoadon = chitietdathang. sohoadonORDER BY 1 DESC2. 30 SELECT a.sohoadon, b.mahang, tenhang, b.soluong * giaban-b.soluong * giaban * mucgiamgia / 100FROM ( dondathang AS a INNER JOIN chitietdathang AS bON a.sohoadon = b.sohoadon ) INNER JOIN mathang AS c ON b.mahang = c. mahangORDER BY a. sohoadonCOMPUTE SUM ( b.soluong * giaban-b.soluong * giaban * mucgiamgia / 100 ) BY a. sohoadon2. 31 SELECT loaihang.maloaihang, tenloaihang, mahang, tenhang, soluongFROM loaihang INNER JOIN mathangON loaihang.maloaihang = mathang.malo aihangORDER BY loaihang. maloaihangCOMPUTE SUM ( soluong ) BY loaihang. maloaihangCOMPUTE SUM ( soluong ) 2.32 SELECT b.mahang, tenhang, SUM ( CASE MONTH ( ngaydathang ) WHEN 1 THEN b. soluongELSE 0 END ) AS Thang1, SUM ( CASE MONTH ( ngaydathang ) WHEN 2 THEN b. soluongELSE 0 END ) AS Thang2, SUM ( CASE MONTH ( ngaydathang ) WHEN 3 THEN b. soluongELSE 0 END ) AS Thang3, SUM ( CASE MONTH ( ngaydathang ) WHEN 4 THEN b. soluongELSE 0 END ) AS Thang4, SUM ( CASE MONTH ( ngaydathang ) WHEN 5 THEN b. soluongELSE 0 END ) AS Thang5, SUM ( CASE MONTH ( ngaydathang ) WHEN 6 THEN b. soluongELSE 0 END ) AS Thang6, SUM ( CASE MONTH ( ngaydathang ) WHEN 7 THEN b. soluongELSE 0 END ) AS Thang7, SUM ( CASE MONTH ( ngaydathang ) WHEN 8 THEN b. soluongELSE 0 END ) AS Thang8, SUM ( CASE MONTH ( ngaydathang ) WHEN 9 THEN b. soluongELSE 0 END ) AS Thang9, SUM ( CASE MONTH ( ngaydathang ) WHEN 10 THEN b. soluongELSE 0 END ) AS Thang10, SUM ( CASE MONTH ( ngaydathang ) WHEN 11 THEN b. soluongELSE 0 END ) AS Thang11, SUM ( CASE MONTH ( ngaydathang ) WHEN 12 THEN b. soluongELSE 0 END ) AS Thang12, SUM ( b.soluong ) AS CaNamFROM ( dondathang AS a INNER JOIN chitietdathang AS bON a.sohoadon = b.sohoadon ) INNER JOIN mathang AS c ON b.mahang = c. mahangWHERE YEAR ( ngaydathang ) = 1996GROUP BY b.mahang, tenhang2. 33 UPDATE dondathangSET ngaychuyenhang = ngayda thangWHERE ngaychuyenhang IS NULL2. 34 UPDATE mathangSET soluong = soluong * 2FROM nhacungcapWHERE nhacungcap.macongty = mathang.macongty ANDtencongty = ' VINAMILK ' 2.35 UPDATE dondathangSET noigiaohang = diachiFROM khachhangWHERE dondathang.makhachhang = khachhang.makhachang ANDnoigiaohang IS NULL2. 36 UPDATE khachhangSET khachhang.diachi = nhacungcap.diachi, khachhang.dienthoai = nhacungcap.dienthoai, khachhang.fax = nhacungcap.fax, khachhang.email = nhacungcap. emailFROM nhacungcapWHERE khachhang.tencongty = nhacungcap.tencongty ANDkhachhang. tengiaodich = nhacungcap. tengiaodich2. 37 UPDATE nhanvienSET luongcoban = luongcoban * 1.5 WHERE manhanvien = ( SELECT manhanvienFROM dondathang INNER JOIN chitietdathangON dondathang.sohoadon = chitietdathang. sohoadonWHERE manhanvien = nhanvien. manhanvienGROUP BY manhanvienHAVING SUM ( soluong ) > 100 ) 2.38 UPDATE nhanvienSET phucap = luongcoban / 2WHERE manhanvien IN ( SELECT manhanvienFROM dondathang INNER JOIN chitietdathangON dondathang.sohoadon = chitietdathang. sohoadonGROUP BY manhanvienHAVING SUM ( soluong ) > = ALL ( SELECT SUM ( soluong ) FROM dondathang INNER JOIN chitietdathangON dondathang.sohoadon = chitietdathang. sohoadonGROUP BY manhanvien ) ) 2.39 UPDATE nhanvienSET luongcoban = luongcoban * 0.85 WHERE NOT EXISTS ( SELECT manhanvienFROM dondathangWHERE manhanvien = nhanvien.manhanvien ) 2.40 UPDATE dondathangSET sot ien ( SELECT SUM ( soluong * giaban + soluong * giaban * mucgiamgia ) FROM chitietdathangWHERE sohoadon = dondathang. sohoadonGROUP BY sohoadon ) 2.41 DELETE FROM nhanvienWHERE DATEDIFF ( YY, ngaylamviec, GETDATE ( ) ) > 402.42 DELETE FROM dondathangWHERE ngaydathang

Source: https://bloghong.com
Category: Marketing