--Tao bang thuoc
DROP TABLE IF EXISTS Thuoc;
CREATE TABLE Thuoc (
Ma_thuoc INT IDENTITY(1,1) PRIMARY KEY,
Ten_thuoc nvarchar(50) NOT NULL,
Loai nvarchar(50) NOT NULL,
Don_vi_tinh nvarchar(50) NOT NULL,
Gia_nhap decimal(18,3) NOT NULL,
Gia_ban decimal(18,3) NOT NULL,
CONSTRAINT chk_gia CHECK (Gia_ban >= Gia_nhap AND Gia_nhap > 0));
--Nhap du lieu thuoc
INSERT INTO Thuoc
(Ten_thuoc, Loai, Don_vi_tinh, Gia_nhap, Gia_ban)
VALUES
(N'Paracetamol 500mg', N'Giảm đau hạ số t', N'Hộp', 18000.00, 25000.00),
(N'Amoxicillin 500mg', N'Kháng sinh', N'Hộp', 35000.00, 48000.00),
(N'Vitamin C 1000mg', N'Vitamin', N'Hộp', 22000.00, 30000.00),
(N'Cetirizine 10mg', N'Chố ng dị ứng', N'Hộp', 15000.00, 22000.00),
(N'Omeprazole 20mg', N'Dạ dày', N'Hộp', 28000.00, 39000.00),
(N'Celecoxib 100mg', N'Kháng viêm', N'Vỉ', 30000.00, 45000.00);
SELECT
[Ma_thuoc],
[Ten_thuoc],
[Loai],
[Don_vi_tinh],
[Gia_nhap],
[Gia_ban]
FROM Thuoc
ORDER BY Ma_thuoc ASC;
--Xem loi nhuan
SELECT
[Ma_thuoc],
[Ten_thuoc],
[Gia_nhap],
[Gia_ban],
(Gia_ban - Gia_nhap) AS Loi_nhuan,
CAST((Gia_ban - Gia_nhap) * 100.0 / Gia_nhap AS decimal(5,1)) AS [%_Loi_nhuan]
FROM Thuoc
ORDER BY Loi_nhuan DESC;
--Tao bang khach hang
DROP TABLE IF EXISTS Khach_hang;
CREATE TABLE Khach_hang (
Ma_khach_hang INT PRIMARY KEY,
Ho_ten NVARCHAR(100) NOT NULL,
Gioi_tinh NVARCHAR(10),
Ngay_thang_nam_sinh DATE,
So_dien_thoai VARCHAR(15) NOT NULL,
Dia_chi NVARCHAR(200));
SELECT * FROM Khach_hang
--Nhap du lieu khach hang
DROP TABLE IF EXISTS Khach_hang;
CREATE TABLE Khach_hang (
Ma_khach_hang INT IDENTITY(1,1) PRIMARY KEY,
Ho_ten NVARCHAR(100) NOT NULL,
Gioi_tinh NVARCHAR(10),
Ngay_thang_nam_sinh DATE,
So_dien_thoai VARCHAR(15) NOT NULL UNIQUE, -- ← thêm UNIQUE
Dia_chi NVARCHAR(200)
);
INSERT INTO Khach_hang
(Ho_ten, Gioi_tinh, Ngay_thang_nam_sinh, So_dien_thoai, Dia_chi)
VALUES
(N'Trầ n Hữu Lươn', N'Nam', '1999-10-09', '0123456789', N'Thiên Đình'),
(N'Con Lươn Đầ u Đầ n', N'Nam', '2000-10-09', '0122485799', N'Địa Phủ'),
(N'Võ Phước Tiến', N'Nam', '2005-04-23', '0987654321', N'Nhà ');
SELECT
[Ma_khach_hang],
[Ho_ten],
[Gioi_tinh],
[Ngay_thang_nam_sinh],
[So_dien_thoai],
[Dia_chi]
FROM Khach_hang;
--Tao bang nha cung cap
DROP TABLE IF EXISTS Nha_cung_cap;
CREATE TABLE Nha_cung_cap (
Ma_nha_cung_cap INT IDENTITY(1,1) PRIMARY KEY,
Ten_nha_cung_cap NVARCHAR(150) NOT NULL,
So_dien_thoai VARCHAR(15) NOT NULL UNIQUE,
Dia_chi NVARCHAR(200)
);
--Nhap du lieu nha cung cap
INSERT INTO Nha_cung_cap
(Ten_nha_cung_cap, So_dien_thoai, Dia_chi)
VALUES
(N'Công ty TNHH Dược Phẩ m An Khang', '0281234567', N'123 Lê Lợi, Quận
1, [Link]'),
(N'Công ty CP Dược Hậu Giang', '0292345678', N'288 Bis Nguyễ n
Văn Cừ, Cầ n Thơ'),
(N'Công ty TNHH Dược Phẩ m Minh Châu', '0243456789', N'45 Trầ n Hưng Đạo,
Hoàn Kiế m, Hà Nội'),
(N'Công ty CP Dược Phẩ m Trung Ương 1', '0244567890', N'16 Láng Hạ, Đố ng
Đa, Hà Nội'),
(N'Công ty TNHH Thương Mại Dược Sài Gòn', '0285678901', N'89 Điện Biên Phủ,
Bình Thạnh, [Link]'),
(N'Công Ty TNHH Liên Doanh Stellapharm', '0274 376 7470',N'40 Đại lộ Tự Do,
Khu công nghiệp Việt Nam – Singapore, P. An Phú, Tp. Thuận An, Bình Dương, Việt
Nam'),
(N'CÔNG TY TNHH MEDIPHAR USA', ' 0903 893 866',N'Ấ p Bình Tiền 2, Xã Đức hòa
Hạ, Huyện Đức Hòa, Long An'),
(N'Công Ty CổPhầ n Dược Phẩm Dược Liệu Pharmedic','028 39200250',N'367
Nguyễn Trãi, Phường Nguyễ n Cư Trinh, Quận 1, TP. HồChí Minh');
SELECT
[Ten_nha_cung_cap],
[So_dien_thoai],
[Dia_chi]
FROM Nha_cung_cap;
--Tao bang Don thuoc
DROP TABLE IF EXISTS Don_thuoc;
CREATE TABLE Don_thuoc (
Ma_don_thuoc INT IDENTITY(1,1) PRIMARY KEY,
Loai_don NVARCHAR(50) NOT NULL,
So_don_thuoc NVARCHAR(50) NOT NULL UNIQUE,
Ten_bac_si NVARCHAR(100) NOT NULL,
Ngay_ke_don DATE DEFAULT GETDATE(),
Co_so_kham_chua_benh NVARCHAR(200)
);
--Nhap du lieu don thuoc
INSERT INTO Don_thuoc
(Loai_don, So_don_thuoc, Ten_bac_si, Ngay_ke_don, Co_so_kham_chua_benh)
VALUES
(N'Đơn thường', N'DT-2024-001', N'BS. Nguyễn Văn An', '2024-01-15',
N'Bệnh viện Chợ Rẫ y [Link]'),
(N'Đơn thường', N'DT-2024-002', N'BS. Trần Thị Bình', '2024-02-20',
N'Bệnh viện Đa khoa Tỉnh Bình Dương'),
(N'Đơn đặc biệt', N'DT-2024-003', N'BS. Lê Minh Châu', '2024-03-10',
N'Phòng khám Đa khoa Quố c tế'),
(N'Đơn thường', N'DT-2024-004', N'BS. Phạm Thị Dung', '2024-04-05',
N'Bệnh viện Nhân Dân 115'),
(N'Đơn đặc biệt', N'DT-2024-005', N'BS. Hoàng Văn Em', '2024-05-18',
N'Bệnh viện Đại học Y Dược [Link]'),
(N'Đơn N', N'DT 2036-003',N'BS. Trần Hữu Luân', '2025-06-18',N'Bệnh viện
Hùng Vương'),
(N'Đơn H', N'DT 3637-002', N'BS. Võ Phước Tiến', '2025-03-12',N'Bệnh việt
Việt Đức');
SELECT
[Loai_don],
[So_don_thuoc],
[Ten_bac_si],
[Ngay_ke_don],
[Co_so_kham_chua_benh]
FROM Don_thuoc;
--Tao bang quy doi thuoc
DROP TABLE IF EXISTS Quy_doi_thuoc;
CREATE TABLE Quy_doi_thuoc (
Ma_quy_doi INT IDENTITY(1,1) PRIMARY KEY,
Ma_thuoc INT NOT NULL,
Ten_thuoc NVARCHAR(100) NOT NULL,
Don_vi_ban NVARCHAR(20) NOT NULL,
So_luong_quy_doi INT NOT NULL,
Gia_ban_theo_don_vi DECIMAL(18,2) NOT NULL,
CONSTRAINT fk_thuoc FOREIGN KEY (Ma_thuoc)
REFERENCES Thuoc(Ma_thuoc),
CONSTRAINT chk_so_luong CHECK (So_luong_quy_doi > 0),
CONSTRAINT chk_gia_don_vi CHECK (Gia_ban_theo_don_vi > 0));
-- Nhap du lieu quy doi thuoc
INSERT INTO Quy_doi_thuoc
(Ma_thuoc, Ten_thuoc, Don_vi_ban, So_luong_quy_doi, Gia_ban_theo_don_vi)
VALUES
(1, N'Paracetamol 500mg', N'Viên', 1, 500.00),
(1, N'Paracetamol 500mg', N'Vỉ', 10, 5000.00),
(1, N'Paracetamol 500mg', N'Hộp', 100, 25000.00),
(2, N'Amoxicillin 500mg', N'Viên', 1, 1200.00),
(2, N'Amoxicillin 500mg', N'Vỉ', 10, 10000.00),
(2, N'Amoxicillin 500mg', N'Hộp', 60, 48000.00),
(3, N'Vitamin C 1000mg', N'Viên', 1, 600.00),
(3, N'Vitamin C 1000mg', N'Hộp', 50, 30000.00),
(4, N'Cetirizine 10mg', N'Viên', 1, 800.00),
(4, N'Cetirizine 10mg', N'Hộp', 30, 22000.00),
(5, N'Omeprazole 20mg', N'Viên', 1, 700.00),
(5, N'Omeprazole 20mg', N'Hộp', 28, 39000.00),
(6, N'Gaviscon', N'Gói',1, 6000.00),
(6, N'Gaviscon', N'Túi', 5, 30000.00),
(6, N'Gaviscon', N'Hộp', 10, 60000.00);
SELECT
[Ma_thuoc],
[Ten_thuoc],
[Don_vi_ban],
[So_luong_quy_doi],
[Gia_ban_theo_don_vi]
FROM Quy_doi_thuoc ;
--Xoa bang cu theo thu tu khoa ngoai
IF OBJECT_ID('Quy_doi_thuoc', 'U') IS NOT NULL DROP TABLE Quy_doi_thuoc;
IF OBJECT_ID('Don_thuoc', 'U') IS NOT NULL DROP TABLE Don_thuoc;
IF OBJECT_ID('Nha_cung_cap', 'U') IS NOT NULL DROP TABLE Nha_cung_cap;
IF OBJECT_ID('Khach_hang', 'U') IS NOT NULL DROP TABLE Khach_hang;
IF OBJECT_ID('Thuoc', 'U') IS NOT NULL DROP TABLE Thuoc;
GO
--Join quy doi thuoc
SELECT
qd.Ma_quy_doi AS [Mã quy đổi],
qd.Ma_thuoc AS [Mã thuốc],
t.Ten_thuoc AS [Tên thuố c],
qd.Don_vi_ban AS [Đơn vị bán],
qd.So_luong_quy_doi AS [Sốlượng quy đổ i],
qd.Gia_ban_theo_don_vi AS [Giá bán theo đơn vị]
FROM dbo.Quy_doi_thuoc qd
INNER JOIN [Link] t
ON qd.Ma_thuoc = t.Ma_thuoc
ORDER BY qd.Ma_thuoc ASC;
GO