INSERT INTO chitietkham (mabenhnhan, mabacsi, ngaykham, ketluan, tienvienphi) VALUES ('BN01', 'BS01', '2010-06-01', 'Ket luan 1', 50000), ('BN02', 'BS02', '2011-07-01', 'Ket luan 2', 100000), ('BN03', 'BS03', '2012-08-01', 'Ket luan 3', 150000), ('BN04', 'BS04', '2013-09-01', 'Ket luan 4', 200000), ('BN05', 'BS05', '2014-10-01', 'Ket luan 5', 250000), ('BN01', 'BS02', '2015-11-01', 'Ket luan 6', 300000), ('BN02', 'BS03', '2016-12-01', 'Ket luan 7', 350000); cau2 SELECT B.mabacsi, B.tenbacsi, SUM(C.tienvienphi) AS tongtien, MIN(C.tienvienphi) AS tienthaphat, MAX(C.tienvienphi) AS tiencaonhat, AVG(C.tienvienphi) AS tientb FROM bacsi B JOIN chitietkham C ON B.mabacsi = C.mabacsi GROUP BY B.mabacsi, B.tenbacsi; Cau3 UPDATE chitietkham SET tienvienphi = CASE WHEN ngaykham < '2012-01-01' THEN tienvienphi * 1.1 WHEN ngaykham BETWEEN '2012-01-01' AND '2013-01-01' THEN tienvienphi * 1.2 ELSE tienvienphi * 1.3 END; Cau4 CREATE TRIGGER trg_check_tienvienphi BEFORE INSERT OR UPDATE ON chitietkham FOR EACH ROW BEGIN IF NEW.tienvienphi > 100000 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Tien vien phi lon hon 100000'; END IF; END; Cau5 CREATE FUNCTION total_tienvienphi_khoa(tenkhoa VARCHAR(100), year INT) RETURNS INT BEGIN DECLARE total INT; SELECT SUM(C.tienvienphi) INTO total FROM chitietkham C JOIN bacsi B ON C.mabacsi = B.mabacsi JOIN khoa K ON B.tenphong = K.tenphong WHERE K.tenkhoa = tenkhoa AND YEAR(C.ngaykham) = year; RETURN total; END;