V. Cài đặt hệ thống
4. Các câu truy vấn
Truy vấn 1. Tìm kiếm tất cả các đơn thuốc được kê trong tháng 10
SELECT * FROM DonThuoc WHERE MONTH(NgayKeDon) = 10;
Truy vấn 2. Đếm số lượng đơn thuốc trong tháng 10 SELECT COUNT(*) AS SoLuongDonThuoc
FROM dbo.DonThuoc
WHERE MONTH(NgayKeDon) = 10;
Truy vấn 3. Tìm kiếm đơn thuốc từ ngày 01/10/2023 đến 20/10/2023
SELECT * FROM DonThuoc
WHERE NgayKeDon BETWEEN '2024-10-01' AND '2024-10-20';
Truy vấn 4. Đếm tổng số bệnh nhân
SELECT COUNT(*) AS TongSoBenhNhan FROM BenhNhan;
Truy vấn 5. Tìm top 5 bệnh nhân khám nhiều nhất trong năm 2024
SELECT TOP 5 bn.MaBenhNhan, COUNT(*) AS SoLanKham FROM LichSuKham lk
INNER JOIN BenhNhan bn ON lk.MaBenhNhan = bn.MaBenhNhan
WHERE YEAR(NgayGioKham) = 2024 GROUP BY bn.MaBenhNhan
ORDER BY COUNT(*) DESC;
Truy vấn 6. Tìm 5 bệnh nhân nhập viện trong khoảng thời gian từ tháng 10/2024 đến tháng 12 có tiền viện phí trung bình cao nhất
SELECT TOP 5 bn.MaBenhNhan, AVG(dv.ChiPhi) as chiphitb
FROM DichVuYTe dv, BenhNhan bn, LichSuKham ls, DonThuoc dt WHERE YEAR(dt.NgayKeDon) = 2024 and
MONTH(dt.NgayKeDon) between 10 and 12 GROUP BY bn.MaBenhNhan;
Truy vấn 7. Tìm 3 bệnh nhân trả tiền nhiều nhất SELECT TOP 3 MaBenhNhan, ChiPhi
FROM DichVuYTe
ORDER BY ChiPhi desc
Truy vấn 8. Sửa lại nhà sản xuất của 1 mã thuốc UPDATE LoaiThuoc
SET NhaSanXuat = 'Sanofi' WHERE MaThuoc = 'LT001' SELECT * from LoaiThuoc
Truy vấn 9. Liệt kê các dịch vụ xét nghiệm SELECT * FROM DichVuYTe
WHERE TenDichVu LIKE '%Xet nghiem%';
Truy vấn 10. Thêm cột cách dùng vào bảng loại thuốc ALTER TABLE LoaiThuoc
ADD CachDung TEXT;
SELECT * FROM LoaiThuoc
Truy vấn 11. Xóa cột cách dùng ALTER TABLE LoaiThuoc
DROP COLUMN CachDung;
SELECT * FROM LoaiThuoc
Truy vấn 12. Hiển thị loại thuốc được kê nhiều nhất SELECT TOP 1 lt.MaThuoc, lt.TenLoai,
COUNT(DISTINCT lt.MaDon) AS 'Số đơn đã kê'
FROM LoaiThuoc lt JOIN DonThuoc dt ON lt.MaDon = dt.MaDon GROUP BY lt.MaThuoc, lt.TenLoai
ORDER BY COUNT (DISTINCT lt.MaDon) DESC
Truy vấn 13. Tính tổng chi phí của các dịch vụ xét nghiệm SELECT SUM(ChiPhi) AS tongchiphi
FROM DichVuYTe
WHERE TenDichVu LIKE '%Xet nghiem%';
Truy vấn 14. Liệt kê các bệnh nhân đã nhập viện trong tháng 7 năm 2024
SELECT bn.MaBenhNhan, n.HoTen AS TenBenhNhan, hs.NgayNhapVien AS NgayNhapVien
FROM HoSoBenhAn AS hs
JOIN BenhNhan AS bn ON hs.MaBenhNhan = bn.MaBenhNhan JOIN Nguoi AS n ON bn.CCCD = n.CCCD
WHERE NgayNhapVien BETWEEN '2024-07-01' AND '2024-07- 31';
Truy vấn 15. Lấy thông tin tất cả bệnh nhân cùng với thông tin người giám hộ
SELECT bn.MaBenhNhan, bn.CCCD, n.HoTen AS TenBenhNhan, ngh.HoTen AS TenNguoiGiamHo
FROM BenhNhan bn
JOIN Nguoi n ON bn.CCCD = n.CCCD
LEFT JOIN Nguoi ngh ON bn.NGH_CCCD = ngh.CCCD;
Truy vấn 16. Liệt kê tất cả các bệnh nhân đã được bác sĩ thăm khám, bao gồm tên bác sĩ và chuyên khoa của họ
SELECT bn.MaBenhNhan, bn.CCCD, n.HoTen AS TenBenhNhan, k.MaBacSi, nbs.HoTen AS TenBacSi, bs.ChuyenKhoa
FROM Kham k
JOIN BenhNhan bn ON k.MaBenhNhan = bn.MaBenhNhan JOIN Nguoi n ON bn.CCCD = n.CCCD
JOIN BacSi bs ON k.MaBacSi = bs.MaBacSi
JOIN Nguoi nbs ON bs.CCCD = nbs.CCCD
Truy vấn 17. Liệt kê các bệnh nhân chưa có người giám hộ SELECT bn.MaBenhNhan, bn.CCCD, n.HoTen AS TenBenhNhan FROM BenhNhan bn
JOIN Nguoi n ON bn.CCCD = n.CCCD WHERE bn.NGH_CCCD IS NULL
Truy vấn 18. Liệt kê bênh nhân có tiền sử bệnh án là tiểu đường SELECT * FROM BenhNhan
WHERE CONVERT(VARCHAR, TienSuBenhAn) = 'Tieu duong'
Truy vấn 19. Liệt kê bệnh nhân chưa có ngày xuất viện
SELECT bn.MaBenhNhan, bn.CCCD, n.HoTen AS TenBenhNhan, hs.NgayNhapVien
FROM BenhNhan bn
JOIN Nguoi n ON bn.CCCD = n.CCCD
JOIN HoSoBenhAn hs ON bn.MaBenhNhan = hs.MaBenhNhan WHERE hs.NgayXuatVien IS NULL
Truy vấn 20. Liệt kê số lần khám của các bác sĩ
SELECT bs.MaBacSi, bs.CCCD, n.HoTen, bs.ChuyenKhoa, COALESCE(COUNT(lsk.MaBacSi), 0) AS SoLanKham
FROM BacSi bs
JOIN Nguoi n ON bs.CCCD = n.CCCD
LEFT JOIN LichSuKham lsk ON bs.MaBacSi = lsk.MaBacSi GROUP BY bs.MaBacSi, bs.CCCD, n.HoTen, bs.ChuyenKhoa;
Truy vấn 21. Tìm bệnh nhân có chi phí dịch vụ y tế cao nhất SELECT TOP 1 MaBenhNhan, SUM(ChiPhi) AS TongChiPhi FROM DichVuYTe
GROUP BY MaBenhNhan ORDER BY TongChiPhi DESC;
Truy vấn 22. Liệt kể bệnh nhân có kết quả khỏi hoàn toàn SELECT bn.MaBenhNhan, bn.CCCD, n.HoTen, hs.KetQua From BenhNhan bn
JOIN Nguoi n ON bn.CCCD = n.CCCD
JOIN HoSoBenhAn hs ON hs.MaBenhNhan = bn.MaBenhNhan WHERE CONVERT(VARCHAR, hs.KetQua) = 'Khoi hoan toan'
Truy vấn 23. Liệt kê các bệnh nhân đang xuất viện trong tháng 6 sắp xếp theo ngày nhập viện
SELECT hs.MaHoSo, hs.MaBenhNhan, ng.HoTen, ng.NgaySinh, hs.NgayNhapVien, hs.NgayXuatVien, hs.ChanDoan,
hs.PhuongAnDieuTri, hs.KetQua FROM dbo.HoSoBenhAn AS hs
JOIN dbo.BenhNhan AS bn ON hs.MaBenhNhan = bn.MaBenhNhan
JOIN Nguoi AS ng ON ng.CCCD = bn.CCCD WHERE MONTH(hs.NgayXuatVien) = 6 ORDER BY hs.NgayNhapVien ASC;
Truy vấn 24. In ra bệnh nhân đã khỏi chuẩn bị xuất viện và cập nhật ngày xuất viện cho những bệnh nhân đó
SELECT
MaHoSo,MaBenhNhan,NgayNhapVien,ChanDoan,KetQua FROM HoSoBenhAn
WHERE KetQua LIKE 'Khoi%' AND NgayXuatVien IS NULL UPDATE HoSoBenhAn
SET NgayXuatVien = '2024-11-07'
WHERE KetQua LIKE 'Khoi%' AND NgayXuatVien IS NULL SELECT
MaHoSo,MaBenhNhan,NgayNhapVien,NgayXuatVien,ChanDoan, KetQua
FROM HoSoBenhAn
Truy vấn 25. Truy vấn tất cả lịch khám diễn ra từ tháng 5 đến hết tháng 7 trong năm 2024 và in ra thông tin của buổi khám SELECT DISTINCT
FORMAT(ls.NgayGioKham, 'yyyy-MM-dd hh:mm') AS NgayGioKham,
bs.MaBacSi,
ng1.HoTen AS HoTenBacSi, bn.MaBenhNhan,
ng2.HoTen AS HoTenBenhNhan FROM LichSuKham ls
JOIN BacSi bs ON ls.MaBacSi=bs.MaBacSi
JOIN BenhNhan bn ON ls.MaBenhNhan = bn.MaBenhNhan LEFT JOIN Nguoi ng2 ON ng2.CCCD = bn.CCCD
LEFT JOIN Nguoi ng1 ON ng1.CCCD = bs.CCCD
WHERE ls.NgayGioKham BETWEEN '2024-05-01' AND '2024-07- 31'
ORDER BY NgayGioKham ASC;
Truy vấn 26. Truy vấn thông tin từng đơn thuốc SELECT
dt.MaDon, dt.MaBacSi, dt.LieuDung,
STRING_AGG(lt.TenLoai,', ') AS DanhSachThuoc FROM DonThuoc dt
JOIN LoaiThuoc lt ON dt.MaDon = lt.MaDon GROUP BY
dt.MaDon, dt.MaBacSi, dt.LieuDung
Truy vấn 27. Truy vấn thông tin và số bệnh nhân trong khoa tiêu hóa
SELECT
ls.MaHoSo,
ls.MaBenhNhan, ng.HoTen,
ng.NgaySinh, ng.SDT,
bn.TienSuBenhAn, hs.NgayNhapVien, hs.NgayXuatVien, hs.ChanDoan,
hs.PhuongAnDieuTri, hs.KetQua
FROM LichSuKham ls
LEFT JOIN BenhNhan bn ON ls.MaBenhNhan=bn.MaBenhNhan LEFT JOIN Nguoi ng ON bn.CCCD=ng.CCCD
LEFT JOIN BacSi bs ON bs.MaBacSi = ls.MaBacSi
LEFT JOIN HoSoBenhAn hs ON ls.MaHoSo = hs.MaHoSo WHERE bs.ChuyenKhoa LIKE 'Tieu Hoa';
Truy vấn 28. Tra cứu các bệnh nhân có địa chỉ ở hà nội SELECT
bn.MaBenhNhan,
ng.HoTen AS HoTenBenhNhan, ng.GioiTinh,
ng.NgaySinh, ng.SDT,
ng.DiaChi, ng.Email
FROM BenhNhan bn
LEFT JOIN Nguoi ng ON bn.CCCD=ng.CCCD WHERE ng.DiaChi LIKE '%Ha Noi%';
Truy vấn 29. Hiển thị thông tin bác sĩ theo chuyên khoa hô hấp SELECT
bs.MaBacSi, ng.HoTen,