0% found this document useful (0 votes)
13 views2 pages

Deso 10

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views2 pages

Deso 10

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

CREATE DATABASE HospitalDB;

USE HospitalDB;

CREATE TABLE Khoa (


TenKhoa VARCHAR(50) PRIMARY KEY,
TenPhong VARCHAR(50)
);

CREATE TABLE BacSi (


MaBacSi INT PRIMARY KEY,
TenBacSi VARCHAR(50),
TenPhong VARCHAR(50),
FOREIGN KEY (TenPhong) REFERENCES Khoa(TenPhong)
);

CREATE TABLE BenhNhan (


MaBenhNhan INT PRIMARY KEY,
TenBenhNhan VARCHAR(50),
DiaChi VARCHAR(100),
NgaySinh DATE,
GioiTinh VARCHAR(10)
);

CREATE TABLE ChiTietKham (


MaBenhNhan INT,
MaBacSi INT,
NgayKham DATE,
KetLuan VARCHAR(255),
TienVienPhi DECIMAL(10, 2),
PRIMARY KEY (MaBenhNhan, MaBacSi, NgayKham),
FOREIGN KEY (MaBenhNhan) REFERENCES BenhNhan(MaBenhNhan),
FOREIGN KEY (MaBacSi) REFERENCES BacSi(MaBacSi)
);

-- Dữ liệu bảng Khoa


INSERT INTO Khoa VALUES ('Khoa Nội', 'Phong A');
INSERT INTO Khoa VALUES ('Khoa Ngoại', 'Phong B');
INSERT INTO Khoa VALUES ('Khoa Nhi', 'Phong C');

-- Dữ liệu bảng BacSi


INSERT INTO BacSi VALUES (1, 'Dr. Nguyen Van A', 'Phong A');
INSERT INTO BacSi VALUES (2, 'Dr. Tran Thi B', 'Phong B');
INSERT INTO BacSi VALUES (3, 'Dr. Le Van C', 'Phong C');
INSERT INTO BacSi VALUES (4, 'Dr. Pham Thi D', 'Phong A');
INSERT INTO BacSi VALUES (5, 'Dr. Vo Van E', 'Phong B');

-- Dữ liệu bảng BenhNhan


INSERT INTO BenhNhan VALUES (1, 'Nguyen Van X', 'Ha Noi', '1980-01-01', 'Nam');
INSERT INTO BenhNhan VALUES (2, 'Tran Thi Y', 'Ho Chi Minh', '1990-02-02', 'Nu');
INSERT INTO BenhNhan VALUES (3, 'Le Van Z', 'Da Nang', '2000-03-03', 'Nam');
INSERT INTO BenhNhan VALUES (4, 'Pham Thi M', 'Hue', '1970-04-04', 'Nu');
INSERT INTO BenhNhan VALUES (5, 'Vo Van N', 'Can Tho', '1985-05-05', 'Nam');

-- Dữ liệu bảng ChiTietKham


INSERT INTO ChiTietKham VALUES (1, 1, '2011-12-31', 'Ket luan A', 500000);
INSERT INTO ChiTietKham VALUES (2, 2, '2012-01-01', 'Ket luan B', 600000);
INSERT INTO ChiTietKham VALUES (3, 3, '2012-12-31', 'Ket luan C', 700000);
INSERT INTO ChiTietKham VALUES (4, 4, '2013-01-01', 'Ket luan D', 800000);
INSERT INTO ChiTietKham VALUES (5, 5, '2013-01-02', 'Ket luan E', 900000);
INSERT INTO ChiTietKham VALUES (1, 2, '2014-01-01', 'Ket luan F', 1000000);
INSERT INTO ChiTietKham VALUES (2, 3, '2015-01-01', 'Ket luan G', 1100000);
INSERT INTO ChiTietKham VALUES (3, 4, '2016-01-01', 'Ket luan H', 1200000);
cau 2
SELECT
MaBacSi,
SUM(TienVienPhi) AS TongTienVienPhi,
MIN(TienVienPhi) AS TienVienPhiThapNhat,
MAX(TienVienPhi) AS TienVienPhiCaoNhat,
AVG(TienVienPhi) AS TienVienPhiTrungBinh
FROM ChiTietKham
GROUP BY MaBacSi;
cau3
UPDATE ChiTietKham
SET TienVienPhi = CASE
WHEN NgayKham < '2012-01-01' THEN TienVienPhi * 1.10
WHEN NgayKham >= '2012-01-01' AND NgayKham <= '2013-01-01' THEN TienVienPhi *
1.20
ELSE TienVienPhi * 1.30
END;
CAU4
CREATE TRIGGER CheckTienVienPhi
BEFORE INSERT ON ChiTietKham
FOR EACH ROW
BEGIN
IF NEW.TienVienPhi <= 100000 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Tien vien phi phai lon hon
100000';
END IF;
END;
CAU5
CREATE FUNCTION TongTienVienPhiKhoa(TenKhoa VARCHAR(50), Nam INT)
RETURNS DECIMAL(10, 2)
BEGIN
DECLARE TongTien DECIMAL(10, 2);
SELECT SUM(TienVienPhi) INTO TongTien
FROM ChiTietKham ck
JOIN BacSi bs ON ck.MaBacSi = bs.MaBacSi
JOIN Khoa k ON bs.TenPhong = k.TenPhong
WHERE k.TenKhoa = TenKhoa AND YEAR(ck.NgayKham) = Nam;
RETURN TongTien;
END;

-- Sử dụng hàm
SELECT TongTienVienPhiKhoa('Khoa Nội', 2012) AS TongTienVienPhi;

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy