câu hỏi và trả lời sql

Màu nền
Font chữ
Font size
Chiều cao dòng

CÂU 1:

/* Cho biết danh sách các đối tác cung cấp hàng cho công ty*/

SELECT * FROM NHACUNGCAP

SELECT * FROM MATHANG

SELECT * FROM NHANVIEN

SELECT DISTINCT NHACUNGCAP.MACONGTY, TENCONGTY

FROM NHACUNGCAP, MATHANG

WHERE NHACUNGCAP.MACONGTY=MATHANG.MACONGTY

--CÂU 2

/* Mã hàng, tên hàng và số lượng của các mặt hàng hiện có trong công ty*/

SELECT MAHANG, TENHANG,SOLUONG

FROM MATHANG

COMPUTE COUNT(MAHANG), SUM(SOLUONG)

--CÂU 3

/* Họ tên, địa chỉ và năm bắt đầu làm việc của các nhân viên trong cty*/

SELECT HO, TEN, DIACHI, YEAR(NGAYLAMVIEC) AS NAM

FROM NHANVIEN

--CÂU 4

/* Địa chỉ, điện thoại của nhà cung cấp có tên giao dịch VINAMILK*/

SELECT *

FROM NHACUNGCAP

WHERE TENGIAODICH='VINAMILK'

--CÂU 5

/* Mã và tên của các mặt hàng có giá trị lớn hơn 100000 và số lượng hiện có ít hơn 50*/

SELECT *

FROM MATHANG

WHERE (GIAHANG>100000) AND (SOLUONG<50)

--CÂU 6

/* Cho biết mỗi mặt hàng trong công ty do ai cung cấp*/

SELECT DISTINCT MATHANG.MAHANG, TENHANG, TENCONGTY

FROM MATHANG, NHACUNGCAP

WHERE MATHANG.MACONGTY=NHACUNGCAP.MACONGTY

--CÂU 7

/* Công ty Việt Tiến đã cung cấp những mặt hàng nào*/

SELECT * FROM NHACUNGCAP

SELECT * FROM MATHANG

SELECT MATHANG.MAHANG, MATHANG.TENHANG, MATHANG.MACONGTY, NHACUNGCAP.TENCONGTY

FROM NHACUNGCAP, MATHANG

WHERE MATHANG.MACONGTY = NHACUNGCAP.MACONGTY AND

TENCONGTY LIKE N'%Việt Tiến'

--CÂU 8

/* Loại hàng thực phẩm do những công ty nào cung cấp, địa chỉ của công ty đó*/

SELECT DISTINCT MATHANG.MALOAIHANG, TENLOAIHANG, TENCONGTY, DIACHI

FROM NHACUNGCAP, LOAIHANG, MATHANG

WHERE LOAIHANG.MALOAIHANG=MATHANG.MALOAIHANG AND

MATHANG.MACONGTY = NHACUNGCAP.MACONGTY AND

TENLOAIHANG=N'THỰC PHẨM'

--CÂU 9

/* Những khách hàng nào (tên giao dịch) đã đặt mua mặt hàng sữa hộp của công ty*/

SELECT KHACHHANG.MAKHACHHANG, TENGIAODICH, TENCONGTY, TENHANG

FROM KHACHHANG, DONDATHANG, MATHANG, CHITIETDATHANG

WHERE KHACHHANG.MAKHACHHANG=DONDATHANG.MAKHACHHANG AND

DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON AND

CHITIETDATHANG.MAHANG=MATHANG.MAHANG AND

TENHANG LIKE N'SỬA HỘP%'

--CÂU 10

/* Đơn đặt hàng số 1 do ai đặt và do nhân viên nào lập, thời gian và địa điểm giao hàng là ở đâu*/

SELECT * FROM NHANVIEN

SELECT * FROM KHACHHANG

SELECT * FROM DONDATHANG

SELECT KHACHHANG.MAKHACHHANG, TENCONGTY, HO, TEN,NGAYGIAOHANG, NOIGIAOHANG

FROM KHACHHANG, NHANVIEN, DONDATHANG

WHERE NHANVIEN.MANHANVIEN=DONDATHANG.MANHANVIEN AND

KHACHHANG.MAKHACHHANG=DONDATHANG.MAKHACHHANG AND

SOHOADON=1

--CÂU 11

/* Hãy cho biết số tiền lương mà công ty phải trả cho mỗi nhân viên là bao nhiêu (lương=lương cơ bản+phụ cấp)*/

SELECT HO, TEN, LUONGCOBAN+PHUCAP AS 'LƯƠNG'

FROM NHANVIEN

--CÂU 12

/* Trong đơn đặt hàng số 3 đặt mua 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 nhiêu(số tiền phải trả=số lượng x giá bán – số lượng x giá bán x mức giảm giá/100) */

SELECT * FROM MATHANG

SELECT MATHANG.MAHANG, SOHOADON, TENHANG, CHITIETDATHANG.SOLUONG*GIABAN*(1-MUCGIAMGIA/100) AS 'SỐ TIỀN PHẢI TRẢ'

FROM MATHANG, CHITIETDATHANG

WHERE MATHANG.MAHANG=CHITIETDATHANG.MAHANG AND

CHITIETDATHANG.SOHOADON=3

--CÂU 13

/* Hãy cho biết có những khách hàng nào lại chính là đối tác cung cấp hàng cho công ty

(tức là có cùng tên giao dịch)*/

SELECT KHACHHANG.TENCONGTY, KHACHHANG.TENGIAODICH

FROM KHACHHANG, NHACUNGCAP

WHERE KHACHHANG.TENGIAODICH=NHACUNGCAP.TENGIAODICH

--CÂU 14

/* Trong công ty có những nhân viên nào có cùng ngày sinh*/

SELECT B.HO, B.TEN, B.NGAYSINH

FROM NHANVIEN A, NHANVIEN B

WHERE DAY(A.NGAYSINH)=DAY(B.NGAYSINH) AND A.MANHANVIEN<>B.MANHANVIEN

--CÂU 15

/* Những đơn hàng nào yêu cầu giao hàng ngay tại công ty đặt hàng

và những đơn đó là của công ty nào */

SELECT DISTINCT TENCONGTY, DIACHI, NOIGIAOHANG

FROM NHACUNGCAP, DONDATHANG

WHERE NHACUNGCAP.DIACHI=DONDATHANG.NOIGIAOHANG

--CÂU 16

/* Cho biết tên công ty, tên giao dịch,

địa chỉ và điện thoại của các khách hàng và nhà cung cấp hàng cho công ty*/

SELECT TENCONGTY, TENGIAODICH, DIACHI, DIENTHOAI FROM KHACHHANG

UNION

SELECT TENCONGTY, TENGIAODICH, DIACHI, DIENTHOAI FROM NHACUNGCAP

--CÂU 17

/* Những mặt hàng nào chưa từng được khách hàng đặt mua*/

SELECT MAHANG,TENHANG FROM MATHANG

WHERE MAHANG NOT IN (SELECT MAHANG FROM CHITIETDATHANG)

--CÂU 18

/* Những nhân viên nào của công ty chưa từng lập hóa đơn đặt hàng nào?*/

SELECT MANHANVIEN, HO, TEN FROM NHANVIEN

WHERE MANHANVIEN NOT IN (SELECT MANHANVIEN FROM DONDATHANG)

--CÂU 19

--Những nhân viên nào của công ty có lương cơ bản cao nhất?

SELECT HO, TEN, LUONGCOBAN

FROM NHANVIEN

WHERE LUONGCOBAN= (SELECT MAX(LUONGCOBAN)

FROM NHANVIEN)

--CÂU 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?

SELECT * FROM DONDATHANG

SELECT * FROM CHITIETDATHANG

/*SELECT DISTINCT DONDATHANG.MAKHACHHANG,CHITIETDATHANG.SOHOADON, SUM(SOLUONG*GIABAN) AS 'THANHTIEN'

FROM CHITIETDATHANG, DONDATHANG

GROUP BY MAKHACHHANG, CHITIETDATHANG.SOHOADON*/

--CÁCH 1

SELECT DONDATHANG.MAKHACHHANG, CHITIETDATHANG.SOHOADON, SUM(SOLUONG*GIABAN) AS 'THANHTIEN'

FROM CHITIETDATHANG, DONDATHANG

WHERE DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON

GROUP BY MAKHACHHANG,CHITIETDATHANG.SOHOADON

--CÁCH 2:

SELECT dondathang.sohoadon,dondathang.makhachhang,tencong ty, tengiaodich,SUM(soluong*giaban)as 'thanhtien'

--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 dondathang.makhachhang,tencongty,tengiaodich, dondathang.sohoadon

1.                               --CÂU 21

--Trong năm 2006 những mặt hàng mà đặt mua đúng một lần

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

-- CÁCH 2:

SELECT MAHANG FROM CHITIETDATHANG, DONDATHANG

WHERE CHITIETDATHANG.SOHOADON=DONDATHANG.SOHOADON AND

YEAR(NGAYDATHANG)=2003

GROUP BY MAHANG

HAVING COUNT(MAHANG)=1

-- CÁCH 3

SELECT MATHANG.MAHANG

FROM MATHANG, DONDATHANG, CHITIETDATHANG

2.                              

WHERE MATHANG.MAHANG=CHITIETDATHANG.MAHANG AND

CHITIETDATHANG.SOHOADON=DONDATHANG.SOHOADON AND

YEAR(NGAYDATHANG)=2003

GROUP BY MATHANG.MAHANG, TENHANG

HAVING COUNT(CHITIETDATHANG.MAHANG)=1

--CÂU 22

/* Mỗi khách hàng phải bỏ ra bao nhiêu tiền để đặt mua hàng của công ty */

SELECT KHACHHANG.MAKHACHHANG, TENCONGTY, TENGIAODICH,

SUM(SOLUONG*GIABAN-((SOLUONG*GIABAN*MUCGIAMGIA)/100))

FROM KHACHHANG, CHITIETDATHANG, DONDATHANG

WHERE KHACHHANG.MAKHACHHANG=DONDATHANG.MAKHACHHANG AND

DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON

GROUP BY KHACHHANG.MAKHACHHANG, TENCONGTY, TENGIAODICH

--CÂU 23

/*Mỗi nhân viên của công ty đã lập bao nhiêu đơn đặt hàng

(nếu chưa hề lập hóa đơn nào thì cho kết quả là 0)*/

SELECT NHANVIEN.MANHANVIEN, HO, TEN, COUNT(SOHOADON)AS 'SO HOA DON DA LAP'

FROM NHANVIEN LEFT JOIN DONDATHANG

ON NHANVIEN.MANHANVIEN=DONDATHANG.MANHANVIEN

GROUP BY NHANVIEN.MANHANVIEN, HO, TEN

--CÂU 24

/* Tổng số tiền hàng mà công ty thu được trong

mỗi tháng của năm 2006 (thời gian được tính theo ngày đặt hàng)*/

SELECT MONTH(NGAYDATHANG) AS THANG,

SUM(SOLUONG*GIABAN-SOLUONG*GIABAN*MUCGIAMGIA/100)AS 'SO TIEN THU DUOC'

FROM DONDATHANG, CHITIETDATHANG

WHERE DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON AND

YEAR(NGAYDATHANG) = 2007

GROUP BY MONTH(NGAYDATHANG)

--CÂU 25

/* Tổng số tiền lời mà công ty thu được từ mỗi mặt hàng trong năm 2006 */

SELECT C.MAHANG, TENHANG,

SUM(B.SOLUONG*GIABAN-B.SOLUONG*GIABAN*MUCGIAMGIA/100)-

SUM(B.SOLUONG*GIAHANG) AS 'TIEN LOI'

FROM DONDATHANG AS A, CHITIETDATHANG AS B, MATHANG AS C

WHERE A.SOHOADON=B.SOHOADON AND

B.MAHANG=C.MAHANG AND

YEAR(NGAYDATHANG)=2007

GROUP BY C.MAHANG, TENHANG

ORDER BY MAHANG

COMPUTE sum(SUM(B.SOLUONG*GIABAN-B.SOLUONG*GIABAN*MUCGIAMGIA/100)-SUM(B.SOLUONG*GIAHANG))

--CÂU 26

/* Tổng số lượng hàng

của mỗi mặt hàng mà công ty đã có (tổng số lượng hàng hiện có và đã bán)*/

SELECT MATHANG.MAHANG, TENHANG,SUM(MATHANG.SOLUONG-CHITIETDATHANG.SOLUONG) AS 'TONG SO LUONG CON'

FROM CHITIETDATHANG, MATHANG

WHERE MATHANG.MAHANG=CHITIETDATHANG.MAHANG

GROUP BY MATHANG.MAHANG, TENHANG

--CÂU 27

/* Nhân viên nào của công ty bán được số lượng hàng nhiều nhất

và số lượng hàng bán được của mhữmg nhân viên này là bao nhiêu*/

--CÁCH 1

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)

--CÁCH 2

SELECT NHANVIEN.MANHANVIEN, HO, TEN, SUM(CHITIETDATHANG.SOLUONG)

FROM NHANVIEN, DONDATHANG, CHITIETDATHANG

WHERE NHANVIEN.MANHANVIEN=DONDATHANG.MANHANVIEN AND

DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON

GROUP BY NHANVIEN.MANHANVIEN, HO, TEN

HAVING SUM(SOLUONG)>=ALL(SELECT SUM(SOLUONG)

FROM NHANVIEN, DONDATHANG, CHITIETDATHANG

WHERE NHANVIEN.MANHANVIEN=DONDATHANG.MANHANVIEN AND

DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON

GROUP BY NHANVIEN.MANHANVIEN, HO, TEN)

--CÂU 28

/* Đơn đặt hàng nào có số lượng hàng được đặt mua ít nhất */

SELECT * FROM CHITIETDATHANG

SELECT DONDATHANG.SOHOADON, SUM(SOLUONG)AS 'SO LUONG HANG DAT MUA IT NHAT'

FROM DONDATHANG, CHITIETDATHANG

WHERE DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON

GROUP BY DONDATHANG.SOHOADON

HAVING SUM(SOLUONG)<=ALL(SELECT SUM(SOLUONG)

FROM DONDATHANG, CHITIETDATHANG

WHERE DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON

GROUP BY DONDATHANG.SOHOADON)

--CÂU 29

/* Số tiền nhiều nhất mà khách hàng đã từng bỏ ra để đặt hàng trong các đơn đặt hàng

là bao nhiêu*/

SELECT TOP 1 SUM(SOLUONG*GIABAN-SOLUONG*GIABAN*MUCGIAMGIA/100)

FROM CHITIETDATHANG, DONDATHANG

WHERE CHITIETDATHANG.SOHOADON=DONDATHANG.SOHOADON

ORDER BY 1 DESC

--CÂU 30

/*Mỗi một đơn đặt hàng đặt mua những mặt hàng nào và tổng số tiền của đơn đặt hàng*/

SELECT B.SOHOADON, B.MAHANG, C.TENHANG, SUM(B.SOLUONG*GIABAN) AS 'TONG SO TIEN'

FROM DONDATHANG A, CHITIETDATHANG B, MATHANG C

WHERE A.SOHOADON=B.SOHOADON AND B.MAHANG=C.MAHANG

GROUP BY B.SOHOADON, B.MAHANG, C.TENHANG

ORDER BY B.SOHOADON

COMPUTE COUNT(B.MAHANG),SUM(SUM(B.SOLUONG*GIABAN)) BY B.SOHOADON

--CÂU 31

/* Mỗi một loại hàng bao gồm những mặt hàng nào, tổng số lượng của mỗi loại và

tổng số lượng của tất cả các mặt hàng hiện có trong cty*/

SELECT LOAIHANG.MALOAIHANG, LOAIHANG.TENLOAIHANG, MAHANG, TENHANG, SOLUONG

FROM LOAIHANG, MATHANG

WHERE MATHANG.MALOAIHANG=LOAIHANG.MALOAIHANG

ORDER BY LOAIHANG.MALOAIHANG

COMPUTE SUM(SOLUONG) BY (LOAIHANG.MALOAIHANG)

COMPUTE SUM(SOLUONG)

--CÂU 32

/*Thống kê trong năm 2006 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ả hiểu thị dưới dạng bảng,

hai cột đầu là mã hàng, tên hàng, các cột còn lại tương ứng từ tháng

1 đến tháng 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*/

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)=2007

GROUP BY b.mahang,tenhang

--CÂU 33

/* Cập nhật lại giá thị trường NGAYCHUYENHANG của những bản ghi có NGAYCHUYENHANG chưa xác định

(NULL) trong bảng DONDATHANG bằng với giá trị của trường NGAYDATHANG*/

UPDATE DONDATHANG

SET NGAYCHUYENHANG=NGAYDATHANG

WHERE NGAYCHUYENHANG IS NULL

SELECT * FROM DONDATHANG

--CÂU 34

UPDATE MATHANG

SET SOLUONG=SOLUONG*2

FROM NHACUNGCAP

WHERE NHACUNGCAP.MACONGTY=MATHANG.MACONGTY AND

TENGIAODICH=N'VINAMILK'

SELECT * FROM MATHANG

--CÂU 35

/* Cập nhật giá trị của trường NOIGIAOHANG trong bảng DONDATHANG bằng

địa chỉ 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 (giá trị trường NOIGIAOHANG bằng NULL).*/

UPDATE DONDATHANG

SET NOIGIAOHANG=DIACHI

FROM KHACHHANG

WHERE DONDATHANG.MAKHACHHANG=KHACHHANG.MAKHACHHANG AND

NOIGIAOHANG=NULL

SELECT * FROM DONDATHANG

--CÂU 36

/* Cập nhật lại dữ liệu trong bảng KHACHHANG sao cho nếu tên công ty và

tên giao dịch của khách hàng trùng với tên công ty và tên giao dịch của một nhà

cung cấp nào đó thì địa chỉ, điện thoại, fax và e-mail phải giống nhau.*/

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

SELECT * FROM KHACHHANG

--CÂU 37

/* Tăng lương lên gấp rưỡi cho những nhân viên bán được số lượng hàng nhiều hơn 100

trong năm 2003.*/

UPDATE NHANVIEN

SET LUONGCOBAN=LUONGCOBAN*1.5

WHERE MANHANVIEN IN(SELECT MANHANVIEN

FROM DONDATHANG, CHITIETDATHANG

WHERE DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON AND

MANHANVIEN=DONDATHANG.MANHANVIEN AND

YEAR(DONDATHANG.NGAYGIAOHANG)=2003

GROUP BY MANHANVIEN

HAVING SUM(SOLUONG)>100)

--CÂU 38

/* Tăng phụ cấp lên bằng 50% lương cho những nhân viên bán được hàng nhiều nhất.*/

UPDATE NHANVIEN

SET PHUCAP=LUONGCOBAN/2

WHERE MANHANVIEN IN

(SELECT MANHANVIEN

FROM DONDATHANG, CHITIETDATHANG

WHERE DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON

GROUP BY MANHANVIEN

HAVING SUM(SOLUONG)>=ALL

(SELECT SUM(SOLUONG)

FROM DONDATHANG, CHITIETDATHANG

WHERE DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON

GROUP BY MANHANVIEN))

SELECT * FROM NHANVIEN

--CÂU 39

/* Giảm 25% lương của những nhân viên trong năm 2003 không lập được bất kỳ đơn đặt hàng nào.*/

UPDATE NHANVIEN

SET LUONGCOBAN=LUONGCOBAN*0.85

WHERE NOT EXISTS (SELECT MANHANVIEN

FROM DONDATHANG

WHERE MANHANVIEN=NHANVIEN.MANHANVIEN AND

YEAR(NGAYDATHANG)=2003)

SELECT * FROM NHANVIEN

--CÂU 40

/* Giả sử trong bảng DONDATHANG có 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 giá trị cho trường này.*/

ALTER TABLE DONDATHANG ADD SOTIEN INT

UPDATE DONDATHANG

SET SOTIEN=(SELECT SUM(SOLUONG*GIABAN+SOLUONG*GIABAN*MUCGIAMGIA)

FROM CHITIETDATHANG

WHERE SOHOADON=DONDATHANG.SOHOADON

GROUP BY SOHOADON)

SELECT * FROM DONDATHANG

--CÂU 41

/* Xoá khỏi bảng NHANVIEN những nhân viên đã làm việc trong công ty quá 40 năm.*/

DELETE FROM NHANVIEN

WHERE YEAR(GETDATE())-YEAR(NGAYLAMVIEC)>40

SELECT * FROM NHANVIEN

--CÂU 42

/* Xoá những đơn đặt hàng trước năm 2000 ra khỏi cơ sở dữ liệu.*/

DELETE FROM DONDATHANG

WHERE NGAYDATHANG<'1/1/2000'

SELECT * FROM DONDATHANG

--CÂU 43

/* Xoá khỏi bảng LOAIHANG những loại hàng hiện không có mặt hàng.*/

DELETE FROM LOAIHANG

WHERE NOT EXISTS (SELECT MALOAIHANG

FROM MATHANG

WHERE MALOAIHANG=LOAIHANG.MALOAIHANG)

SELECT * FROM LOAIHANG

--CÂU 44

/* Xoá khỏi bảng KHACHHANG những khách hàng hiện không có bất kỳ đơn đặt hàng nào cho công ty.*/

DELETE FROM KHACHHANG

WHERE NOT EXISTS (SELECT SOHOADON

FROM DONDATHANG

WHERE MAKHACHHANG=KHACHHANG.MAKHACHHANG)

SELECT * FROM KHACHHANG

--CÂU 45

/* Xoá khỏi bảng MATHANG những mặt hàng có số lượng bằng 0 và không được đặt mua trong

bất kỳ đơn đặt hàng nào.*/

DELETE FROM MATHANG

WHERE SOLUONG=0 AND NOT EXISTS(SELECT SOHOADON

FROM CHITIETDATHANG

WHERE MAHANG=MATHANG.MAHANG)

SELECT * FROM MATHANG

Bạn đang đọc truyện trên: Truyen2U.Net