Các câu truy vấn

Một phần của tài liệu Báo cáo bài tập lớn môn cơ sở dữ liệu Đề tài hồ sơ bệnh Án Điện tử (Trang 31 - 47)

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,

Một phần của tài liệu Báo cáo bài tập lớn môn cơ sở dữ liệu Đề tài hồ sơ bệnh Án Điện tử (Trang 31 - 47)

Tải bản đầy đủ (DOCX)

(47 trang)
w