100% found this document useful (3 votes)
1K views19 pages

SQL Queries

This document contains 33 SQL queries related to a hospital database. The queries retrieve and manipulate data from tables containing information on patients, doctors, rooms, fees, and more. They include queries to add/drop primary keys and foreign keys, select data based on various criteria like age, disease, date ranges, and more. Joins are used to retrieve data from multiple tables. Aggregate functions like count, min, max are used to return summarized results.

Uploaded by

Jaya Swamy
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
1K views19 pages

SQL Queries

This document contains 33 SQL queries related to a hospital database. The queries retrieve and manipulate data from tables containing information on patients, doctors, rooms, fees, and more. They include queries to add/drop primary keys and foreign keys, select data based on various criteria like age, disease, date ranges, and more. Joins are used to retrieve data from multiple tables. Aggregate functions like count, min, max are used to return summarized results.

Uploaded by

Jaya Swamy
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 19

SQL ASSIGNMENT QUERIES...................................100 QUERIES 1.

Change The Patient Id In Patient master Table as Primary Key


ALTER TABLE patients_master ADD CONSTRAINT pk_pid PRIMARY KEY(Patient_ID)

Droping the Primary key


ALTER TABLE PATIENTS_MASTER DROP CONSTRAINT pk_pid

2.Change the doctor id in Doctor fees master table to Foreign key Ref: doctor Master
ALTER TABLE DOCTOR_FEES_MASTER ADD CONSTRAINT fk_docid FOREIGN KEY (Doctor_id) REFERENCES DOCTORMASTER(DoctorID)

Droping the foreign key


ALTER TABLE DOCTOR_FEES_MASTER DROP CONSTRAINT fk_docid

3.Display The patient Name whose Age is 20


SELECT patient_name FROM dbo.PATIENTS_MASTER WHERE age = 20

4.Display The Cardiologist details


SELECT * FROM dbo.DOCTORMASTER WHERE DOCTORMASTER.Specialist = 'cardiologist'

5.Display The RoomId where the rent per day is > 200
SELECT RoomId FROM dbo.ROOM_RATE_MASTER WHERE ROOM_RATE_MASTER.Rent_Per_day > 200 6.Display the patients who visited Today SELECT * FROM dbo.PATIENTS_DETAILS WHERE Date_Of_Visit = '4-2-2010'

7.Display the Patients Who is suffering from ASTHMA


SELECT * FROM dbo.PATIENTS_DETAILS WHERE PATIENTS_DETAILS.Disease = 'ASTHMA'

8.Display The in-patient Id who is in the hospital for more than 3 days
SELECT PATIENTS_DETAILS.Patient_ID FROM dbo.PATIENTS_DETAILS

WHERE DATEDIFF(day,Date_Of_Visit,Date_Of_Discharge)>3 9.Display The patient Name whose Age is greater than 20 and less than 50 SELECT Patient_Name FROM dbo.PATIENTS_MASTER WHERE PATIENTS_MASTER.Age BETWEEN 21 AND 49 SELECT Patient_Name FROM dbo.PATIENTS_MASTER WHERE PATIENTS_MASTER.Age >20 AND PATIENTS_MASTER.Age < 50 10.Display the doctors id who get the fees for inpatient rs 250 and fees greater than rs

400
SELECT Doctor_Id FROM dbo._FEES_IN_PATIENTS AS god WHERE god.Doctor_Fees > 400 OR god.Doctor_Fees = 250 11)--DISPLAY

DOCTOR ID,NAME,SPECILIST, FEES FOR INPATIENT, OUT PATIENT BY JOINING DOCTOR MASTER AND DOCTOR FEES MASTER
SELECT DOCTORID,DOCTOR_NAME,SPECIALIST,OUT_PATIENTS,IN_PATIENTS FROM DOCTOR_FEES_MASTER,DOCTORMASTER WHERE DOCTORMASTER.DOCTORID = DOCTOR_FEES_MASTER.DOCTOR_ID

12)--DISPLAY THE ROOMID,ROOM TYPE,NUMBER

OF BEDS, ROOM DESCRIPTION,

ROOM RENT PER DAY BY USING ANSI JOIN


SELECT ROOM_ID,ROOM_TYPE,NO_OF_BEDS,ROOM_DESC,RENT_PER_DAY FROM ROOM_MASTER JOIN ROOM_RATE_MASTER ON ROOM_ID=ROOM_RATE_ID

13)--DISPLAY THE OUT PATIENT DETAILS

LIKE PATIENT NAME, PATIENT ADDRESS ,PATIENT ADDRESS 2, DATE OF BITH,PHONE,SEX,BLOOD GROUP,AGE, SYMPTOM,DISEASE,TREATMENT
SELECT PATIENT_NAME,ADDRESS1,ADDRESS2,DATEOFBIRTH,PHONE,SEX,BLOOD_GROUP, PATIENTS_MASTER..AGE,SYMPTOMS,DISEASE,TREATMENT FROM PATIENTS_MASTER,PATIENTS_DETAILS WHERE PATIENTS_MASTER.PATIENT_ID=PATIENTS_DETAILS.PATIENT_ID

14)--DISPLAY THE

PATIENT NAME AND DOCTOR NAME FROM FEES DETAILS FOR OUT PATIENT WHERE THE TOTAL AMOUNT PAID BY THE PATIENT IS RS 4000 AND RS 500
SELECT DOCTOR_NAME,PATIENT_NAME FROM PATIENTS_MASTER,FEES_OUT_PATIENTS,DOCTORMASTER WHERE FEES_OUT_PATIENTS.DOCTOR_ID=DOCTORMASTER.DOCTORID AND

FEES_OUT_PATIENTS.PATIENT_ID=PATIENTS_MASTER.PATIENT_ID AND TOTAL_AMOUNT=4000 OR TOTAL_AMOUNT=5000

15)--DISPLAY THE PATIENT DETAILS WHOSE NAME STARTS WITH SELECT * FROM PATIENTS_MASTER WHERE PATIENT_NAME LIKE 'S%'

16))--DISPLAY THE PATIENT DETAILS WHOSE NAME STARTS WITH A,S SELECT * FROM PATIENTS_MASTER WHERE PATIENT_NAME LIKE 'S%' AND PATIENT_NAME LIKE 'A%'

17)--DISPLAY THE PATIENT DETAILS WHOSE NAME DOES NOT STARTS WITH A,S SELECT * FROM PATIENTS_MASTER WHERE PATIENT_NAME NOT LIKE 'S%' AND PATIENT_NAME NOT LIKE 'A%' 18)DISPLAY THE

PATIENT WHO BORN IN SAME MONTH SELECT DISTINCT P.PATIENT_NAME,DATEPART(MM,P.DATEOFBIRTH) AS 'MONTH' FROM PATIENTS_MASTER P,PATIENTS_MASTER P1 WHERE DATEPART(MONTH,P.DATEOFBIRTH)=DATEPART(MONTH,P1.DATEOFBIRTH) AND P.PATIENT_ID<>P1.PATIENT_ID THE PATIENT DETAILS WHO VISITED THE HOSPITAL IN EXACTLY ONE YEAR BEFORE THIS DATE
19)DISPLAY SELECT * FROM PATIENTS_DETAILS WHERE DATEDIFF(DAY,DATE_OF_VISIT,GETDATE())=365 20)--DISPLAY THE PATIENT DETAILS WHO VISITED THE HOSPITAL IN EXACTLY ONE MONTH BEFORE THIS DATE SELECT * FROM PATIENTS_DETAILS WHERE DATEDIFF(MONTH,DATE_OF_VISIT,GETDATE())=1

USE hospital1 GO SELECT * FROM dbo.DOCTORMASTER GO SELECT * FROM dbo.FEES_OUT_PATIENTS SP_HELP DOCTORMASTER

GO SP_HELP FEES_IN_PATIENTS SP_HELP FEES_OUT_PATIENTS

--22.Display the Doctor details who get the highest fees for out patient SELECT d1.DoctorID [DOCTOR_ID], d1.Doctor_Name [DOCTOR_NAME], d1.Specialist [SPECIALIZATION], d1.Gender [SEX] , d2.Total_Amount [AMOUNT] FROM dbo.DOCTORMASTER d1 JOIN dbo.FEES_OUT_PATIENTS d2 ON d1.DoctorID = d2.Doctor_Id WHERE d2.Total_Amount = (SELECT MAX(Total_Amount) FROM FEES_OUT_PATIENTS) ORDER BY DoctorID --23.Display the doctor details who get the lowest fees for in patient SELECT d1.DoctorID [DOCTOR_ID], d1.Doctor_Name [DOCTOR_NAME], d1.Specialist [SPECIALIZATION], d1.Gender [SEX] , d2.Total_Amount [AMOUNT] FROM DOCTORMASTER d1 JOIN FEES_IN_PATIENTS d2 ON d1.DoctorID = d2.d_ID WHERE d2.Total_Amount = (SELECT MIN(d2.Total_Amount)FROM FEES_IN_PATIENTS d2) ORDER BY d1.DoctorID --24.Display the doctor details who get the highest sum of fees for both out and in patient

SELECT TOP 1 d1.DoctorID [DOCTOR_ID], d1.Doctor_Name [DOCTOR_NAME], d1.Specialist [SPECIALIZATION], d1.Gender [SEX] , d2.Total_Amount [IN_AMOUNT], d3.Total_Amount [OUT_AMOUNT] FROM DOCTORMASTER d1 JOIN dbo.FEES_IN_PATIENTS d2 ON d1.DoctorID = d2.doctor_ID JOIN dbo.FEES_OUT_PATIENTS d3 ON d2.doctor_ID = d3.doctor_ID --WHERE (d2.Total_Amount = (SELECT MAX(d2.Total_Amount) FROM fees_in_patients d2)) AND (d3.Total_Amount = (SELECT MAX(d3.Total_Amount) FROM fees_in_patients d3)) ORDER BY d1.DOCTORID --25.Display the doctor details who get the highest sum of fees for both out and in patient

--DECLARE @var1 sql_varient SELECT d1.DoctorID [DOCTOR_ID], d1.Doctor_Name [DOCTOR_NAME], d1.Specialist [SPECIALIZATION], d1.Gender [SEX], d2.In_Patients [FEE_INPATIENTS], d2.OutPatients [FEE_OUTPATIENTS] FROM DOCTORMASTER d1 JOIN DOCTOR_FEES_MASTER d2 ON d1.DoctorID = d2.Doctor_Id WHERE (d2.outPatients + d2.In_Patients) = (SELECT MAX(d2.OutPatients + d2.In_Patients)FROM DOCTOR_FEES_MASTER d2) ORDER BY d1.DoctorID

--25.Display the doctor details who get the lowest average of fees for both out and in patient SELECT d1.DoctorID [DOCTOR_ID], d1.Doctor_Name [DOCTOR_NAME], d1.Specialist [SPECIALIZATION], d1.Gender [SEX], d2.In_Patients [FEE_INPATIENTS], d2.OutPatients [FEE_OUTPATIENTS], (d2.outPatients + d2.In_Patients) AS TOTAL, (d2.outPatients + d2.In_Patients)/2 AS [AVG] FROM DOCTORMASTER d1 JOIN DOCTOR_FEES_MASTER d2 ON d1.DoctorID = d2.Doctor_Id WHERE (d2.outPatients + d2.In_Patients)/2 = (SELECT (MIN(d2.outPatients + d2.In_Patients)/2) FROM DOCTOR_FEES_MASTER d2) ORDER BY d1.DoctorID --26.Display the room details which has the highest room rent per day SELECT d1.Room_Id AS [ROOM_ID], d1.Room_Type AS ROOM_TYPE, d1.Room_Desc AS ROOM_DESC, d1.No_Of_Beds AS NO_OF_BEDS, d2.Rent_Per_Day AS RENT FROM ROOM_MASTER d1 JOIN dbo.ROOM_RATE_MASTER d2 ON d1.Room_Id = d2.RoomId WHERE d2.Rent_Per_Day = (SELECT MAX( d2.Rent_Per_Day)FROM dbo.ROOM_RATE_MASTER d2 ) ORDER BY d2.RoomId

--27.Display The number of patients for each doctor who visited today SELECT d1.DoctorId AS DOC_ID, d1.Doctor_Name AS DOC_Name, COUNT(*) AS [COUNT], d2.Date_Of_Visit AS DATE_VISIT

FROM dbo.DOCTORMASTER d1 JOIN dbo.PATIENTS_DETAILS d2 ON d1.DoctorId = d2.Doctor_Id WHERE d2.Date_Of_Visit =(SELECT MAX(d2.Date_Of_Visit)FROM PATIENTS_DETAILS d2) GROUP BY d1.DoctorId,d1.Doctor_Name,d2.Date_Of_Visit --28.Display the doctor who visited more number of patients on Today SELECT /*TOP 1*/ d1.DoctorId AS DOC_ID, d1.Doctor_Name AS DOC_Name, COUNT(*) AS [COUNT], d2.Date_Of_Visit AS DATE_VISIT FROM dbo.DOCTORMASTER d1 JOIN dbo.PATIENTS_DETAILS d2 ON d1.DoctorId = d2.Doctor_Id WHERE d2.Date_Of_Visit = (SELECT MAX(d2.Date_Of_Visit)FROM PATIENTS_DETAILS d2) --HAVING COUNT(*) >= 5 GROUP BY d1.DoctorId,d1.Doctor_Name,d2.Date_Of_Visit --29.Display the in patient details who paid high USE HOSPITAL1 GO SELECT * FROM dbo.FEES_OUT_PATIENTS

SELECT d1.Patient_ID AS [P_ID], d1.Patient_Name AS [P_NAME], d1.Address1 AS [P_ADD], d1.Phone AS [P_PHONE], /*d2.Total_Amount*/ ISNULL(d2.Total_Amount,0) AS [IN_AMOUNT], ISNULL(d3.Total_Amount,0) AS [OUT_AMOUNT], ISNULL((d2.Total_Amount + d3.Total_Amount),0) AS [TOTAL_AMOUNT] FROM dbo.PATIENTS_MASTER d1 LEFT OUTER JOIN dbo.FEES_IN_PATIENTS d2 ON d1.Patient_ID = d2.Patient_ID FULL OUTER JOIN dbo.FEES_OUT_PATIENTS d3 ON d2.Patient_ID = d3.Patient_ID WHERE (d2.Total_Amount + d3.Total_Amount) = (SELECT (d2.Total_Amount + d3.Total_Amount) FROM dbo.FEES_IN_PATIENTS d2 JOIN dbo.FEES_OUT_PATIENTS d3 ON d2.Patient_ID = d3.Patient_ID ) ORDER BY d1.Patient_ID SELECT DATENAME(month,GETDATE()) AS [MONTH_NAME] ISNULL

-- 30 . Display The top 5 doctors who are cardiologiest SELECT TOP 5 * FROM dbo.DOCTORMASTER WHERE Specialist = 'cardiologist'

SELECT * FROM dbo.DOCTORMASTER WHERE Specialist IN ('cardiologist') --31.Display the oldest doctor in the hospital

SELECT MIN(d1.Date_Of_Birth) AS DOB ,d1.DoctorID FROM dbo.DOCTORMASTER d1 GROUP BY d1.DoctorID SELECT DISTINCT d1.DoctorID,d1.Doctor_Name,d1.Date_Of_Birth FROM dbo.DOCTORMASTER d1 INNER JOIN dbo.DOCTORMASTER d2 ON d1.Date_Of_Birth = (SELECT (MIN(d2.Date_Of_Birth)) FROM dbo.DOCTORMASTER d2) GROUP BY d1.DoctorID,d1.Doctor_Name,d1.Date_Of_Birth --32.Display the youngest patient in the hospital SELECT * FROM PATIENTS_DETAILS SELECT * FROM PATIENTS_MASTER SELECT d1.Patient_Name AS [P_NAME], d1.Patient_ID AS [P_ID], d1.DateOfBirth AS [P_DOB] FROM dbo.PATIENTS_MASTER d1 WHERE d1.DateOfBirth = (SELECT MAX(d2.DateOfBirth)FROM PATIENTS_MASTER d2) GROUP BY d1.DateOfBirth,d1.Patient_Name,d1.Patient_ID ORDER BY d1.Patient_ID --33.Display the number of patient who have b+ and a+ blood group SELECT d1.Patient_Name AS [P_NAME], d1.Patient_ID AS [P_ID], d1.Blood_Group AS [P_BLOOD_GROUP] FROM dbo.PATIENTS_MASTER d1 WHERE d1.Blood_Group IN ('a+','b+') SELECT COUNT(*) AS [P_COUNT], d1.Blood_Group AS [P_BLOOD_GROUP] FROM dbo.PATIENTS_MASTER d1 WHERE d1.Blood_Group IN ('a+','b+') GROUP BY d1.Blood_Group USE hospital1 SELECT * FROM --34.Display the doctor name and total fees he/she get for each patient SELECT d1.DoctorID AS [DOC_ID], d1.Doctor_Name AS [ DOC_NAME], --d2.Patient_Name AS [PAT_NAME], --d2.Patient_ID AS [PAT_ID],

d3.Outpatients AS [OUT_PAT_FEES], d3.In_patients AS [IN_PAT_FEES], d3.Outpatients + d3.In_patients AS [PAT_TOTAL] FROM dbo.doctormaster d1 JOIN dbo.doctor_fees_master d3 ON d1.doctorid = d3.doctor_id ORDER BY d1.doctorID --35.Display The Oldest female doctor in Hospital SELECT * FROM dbo.doctormaster SELECT d1.DoctorID AS [DOC_ID], d1.Doctor_Name AS [DOC_NAME], d1.Gender AS [DOC_GEN], d1.Date_Of_Birth AS [DOB], DATEPART(day,d1.Date_Of_Birth) AS [Day], DATEPART(month,d1.Date_Of_Birth) AS [MONTH], DATEPART(year,d1.Date_Of_Birth) AS [YEAR], DATEDIFF(year,d1.Date_Of_Birth,GETDATE()) AS [AGE] FROM dbo.DOCTORMASTER d1 WHERE d1.Date_Of_Birth = (SELECT MIN(d1.Date_Of_Birth) FROM dbo.DOCTORMASTER d1 WHERE d1.Gender = 'F') ORDER BY d1.DoctorID --36.Display The Doctorname, specialist,Gender,age from doctor details SELECT d1.DoctorID AS [DOC_ID], d1.Doctor_Name AS [DOC_NAME], d1.Gender AS [DOC_GEN], d1.Date_Of_Birth AS [DOB], DATEPART(day,d1.Date_Of_Birth) AS [Day], DATEPART(month,d1.Date_Of_Birth) AS [MONTH], DATEPART(year,d1.Date_Of_Birth) AS [YEAR], DATEDIFF(year,d1.Date_Of_Birth,GETDATE()) AS [AGE] FROM dbo.DOCTORMASTER d1 --37.Display the room details which has maximum number of beds and rent per day of that room SELECT * FROM dbo.ROOM_MASTER GO SELECT * FROM dbo.ROOM_RATE_MASTER d2 SELECT * FROM dbo.ROOM_MASTER d1 JOIN dbo.ROOM_RATE_MASTER d2 ON d1.Room_Id = d2.RoomId WHERE d1.No_of_Beds = (SELECT MAX(d1.No_of_Beds) FROM dbo.ROOM_MASTER d1) ORDER BY d1.Room_Id

--38.Display the doctor details whose address2 is empty SELECT * FROM dbo.DOCTORMASTER d1 WHERE d1.Doctor_Address2 IS NULL --39.Display the number of patients discharged in the month of november

SELECT * FROM dbo.PATIENTS_DETAILS SELECT COUNT(*) AS NO_PATIENTS FROM dbo.PATIENTS_DETAILS WHERE DATEPART(month,Date_Of_Discharge)='11' --40.Display the number of patients visited last year SELECT COUNT(*) AS NO_PAT_LASTYR FROM dbo.PATIENTS_DETAILS d1 WHERE DATEDIFF(year,d1.Date_Of_Visit,GETDATE())=1 --41.Display out patient who paid maximum amount in the month of november and the doctor incharge SELECT * FROM dbo.PATIENTS_MASTER GO SELECT * FROM dbo.FEES_OUT_PATIENTS SELECT TOP 1 d1.Patient_ID AS [P_ID], d1.Patient_Name AS [P_NAME], d1.DateOfRegistration AS [P_Regist], CONVERT (varchar(30),DATEPART(Month,d1.DateOfRegistration),102) AS [Month], d2.Doctor_Id AS [DOC_id], d2.Total_Amount AS [Total_Amount] FROM dbo.PATIENTS_MASTER d1 JOIN dbo.FEES_OUT_PATIENTS d2 ON d1.Patient_ID = d2.Patient_ID WHERE d2.Total_Amount = (SELECT MAX(d2.Total_Amount) FROM dbo.FEES_OUT_PATIENTS d2 JOIN dbo.PATIENTS_MASTER d1 ON DATEPART(Month,d1.DateOfRegistration) = '2' ) ORDER BY d1.Patient_ID --42.Display The number of in patients admitted yesterday SELECT * FROM dbo.PATIENTS_DETAILS SELECT COUNT(*) AS [COUNT] FROM dbo.PATIENTS_DETAILS d1 WHERE d1.Date_Of_Visit = (SELECT (GETDATE() -1 )) --43.Display the room details which got the minimum rent per day SELECT d1.*,d2.Rent_Per_Day FROM dbo.ROOM_MASTER d1 JOIN dbo.ROOM_RATE_MASTER d2 ON d1.Room_Id = d2.RoomId WHERE d2.Rent_Per_Day = (SELECT MIN(d2.Rent_Per_Day ) FROM dbo.ROOM_RATE_MASTER d2) --44.Display the number of patients who have same symptoms and got different treatments SELECT * FROM dbo.PATIENTS_DETAILS d1 SELECT COUNT(*) AS NO_OF_PATIENTS,

d1.Symptoms, d1.Treatment AS [TREAT] FROM dbo.PATIENTS_DETAILS d1 GROUP BY d1.Symptoms,d1.Treatment --45.Display the male doctor details who celebrated their birth day last month SELECT * FROM dbo.DOCTORMASTER d1 WHERE DATEDIFF(month,GETDATE(),d1.Date_Of_Birth)>1 --49.Display the patient detalis who visited the hospital from 1/9/2008 to till date Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) SELECT p.* FROM dbo.PATIENTS_DETAILS p WHERE Date_Of_Visit BETWEEN '1/9/2008' AND GETDATE() --50.Display The number of doctors whose age is greated than 50 SELECT d.*,DATEDIFF(Year,Date_Of_Birth,GETDATE()) AS AGE FROM dbo.DOCTORMASTER d WHERE DATEDIFF(Year,Date_Of_Birth,GETDATE()) >50 SELECT COUNT(*) AS [COUNT] FROM dbo.DOCTORMASTER d WHERE DATEDIFF(Year,Date_Of_Birth,GETDATE()) >50 --51.Display The male patient details whose second letter is 'A' SELECT p.* FROM dbo.PATIENTS_MASTER p WHERE p.Patient_Name LIKE '_a%' AND p.Sex = 'M' --52.Display The male patient details whose second and last letter is 'A' SELECT p.* FROM dbo.PATIENTS_MASTER p WHERE p.Patient_Name LIKE '_a%a' AND p.Sex = 'M' --53.Display the number of beds in the room where the in patient 'Akilan' is admitted SELECT p.Patient_ID AS P_ID, p.Patient_Name AS P_NAME, q.Room_Id AS ROOM_ID, r.No_of_beds AS [COUNT_BEDS] FROM dbo.PATIENTS_MASTER p JOIN dbo.PATIENTS_DETAILS q ON p.Patient_ID = q.Patient_ID JOIN dbo.ROOM_MASTER r ON r.Room_Id = q.Room_Id GROUP BY p.Patient_ID,p.Patient_Name,q.Room_Id,r.No_of_beds HAVING p.Patient_Name = 'Akilan' --54.Display the male patient who have the symptoms of ashma and getting the treatment by DR Ram

SELECT

d1.Patient_ID AS P_ID, d1.Patient_Name AS P_NAME, d3.DoctorId AS DOC_ID, d3.Doctor_Name AS DOC_NAME FROM dbo.Patients_Master d1 JOIN dbo.Patients_Details d2 ON d1.Patient_Id = d2.Patient_Id JOIN dbo.DOCTORMASTER d3 ON d2.Doctor_Id = d3.DoctorId WHERE d2.symptoms = 'Wheezing' AND d1.Sex = 'M' --55.Display the sum of total amount fees for an out patient of each doctor where the sum of total amount fees is > than 50000 SELECT p.Patient_Id AS [P_ID], p.Patient_Name AS [P_NAME], q.Doctor_Id AS [DOC_ID], r.Doctor_Name AS [DOC_NAME], q.Total_Amount AS [TOTAL] FROM dbo.Patients_Master p JOIN dbo.Fees_out_Patients q ON p.Patient_Id = q.Patient_Id JOIN dbo.DOCTORMASTER r ON q.Doctor_Id = r.DoctorId WHERE q.Total_Amount > 5000 --56.Display the patient details who were in the AC room SELECT r.Patient_Id AS [P_ID], p.Patient_Name AS [P_NAME], d.* FROM dbo.ROOM_MASTER d JOIN dbo.PATIENTS_DETAILS r ON d.Room_Id = r.Room_Id JOIN dbo.PATIENTS_MASTER p ON p.Patient_Id = r.Patient_Id WHERE d.Room_Type = 'AC' --57.Display the patient details who were in the AC room from 8/8/2008 to 9/9/2008 SELECT * FROM dbo.PATIENTS_DETAILS SELECT r.Patient_Id AS [P_ID], p.Patient_Name AS [P_NAME],

d.* FROM dbo.ROOM_MASTER d JOIN dbo.PATIENTS_DETAILS r ON d.Room_Id = r.Room_Id JOIN dbo.PATIENTS_MASTER p ON p.Patient_Id = r.Patient_Id WHERE d.Room_Type = 'AC' AND Date_Of_Visit BETWEEN '8/8/2008' AND '9/9/2009' --58.Display the patient name,patient type, doctor name,room type,room description, duration(difference between date of

visit and date of discharge,symptom,treatment,disease) --59.Display the patient who was in the hospital for more number of days USE hospital1 GO SELECT

p.Patient_Id, p.Patient_Name, q.Date_Of_Visit, q.Date_Of_Discharge, DATEDIFF(day,q.Date_Of_Visit,q.Date_Of_Discharge)AS DAYS FROM dbo.Patients_Master p JOIN dbo.Patients_Details q ON p.Patient_Id = q.Patient_Id WHERE DATEDIFF(day,q.Date_Of_Visit,q.Date_Of_Discharge) = (SELECT MAX(DATEDIFF(day,q.Date_Of_Visit,q.Date_Of_Discharge)) FROM dbo.Patients_Details q) GROUP BY p.Patient_Id, p.Patient_Name, q.Date_Of_Visit,q.Date_Of_Discharge --60.Display the male patient who got treatment from a male doctor SELECT * FROM dbo.DOCTORMASTER GO SELECT * FROM dbo.PATIENTS_DETAILS GO SELECT * FROM dbo.PATIENTS_MASTER SELECT --p.Patient_Id AS [P_ID], r.Patient_Name AS [P_NAME], r.Sex AS [PATIENT_SEX] , --q.DoctorID AS [DOC_ID], q.Doctor_Name AS [DOC_NAME], q.Gender AS [DOC_SEX] FROM dbo.PATIENTS_DETAILS p JOIN dbo.DOCTORMASTER q ON q.DoctorID = p.Doctor_ID JOIN dbo.PATIENTS_MASTER r ON p.Patient_Id = r.Patient_Id WHERE q.Gender = 'M' AND r.Sex = 'M' ORDER BY q.DoctorID --61.Display the youngest doctor who is specialized in dermatology SELECT * FROM dbo.DOCTORMASTER SELECT d1.*, DATEDIFF(Year,d1.Date_Of_Birth,GETDATE()) AS AGE FROM dbo.DOCTORMASTER d1 WHERE d1.Date_Of_Birth = (SELECT MAX(d1.Date_Of_Birth) FROM dbo.DOCTORMASTER d1 WHERE d1.Specialist = 'dermatology' ) --62.Display the room description where the room rent per day =500 SELECT * FROM ROOM_RATE_MASTER Go SELECT * FROM ROOM_MASTER

SELECT d1.Room_Id AS ROOM_ID, d1.Room_Type AS ROOM_TYPE, d2.Rent_Per_day AS RENT_PER_DAY, d1.Room_Desc AS DESCRIPTION FROM ROOM_MASTER d1 JOIN ROOM_RATE_MASTER d2 ON d1.Room_Id = d2.Room_Rate_Id WHERE d2.Rent_Per_Day = '500' --63.Display the number of patients in the room where the rent per day = 500 SELECT COUNT(*) AS [COUNT_ OF_PERSON] FROM dbo.PATIENTS_DETAILS d1 JOIN dbo.ROOM_RATE_MASTER d2 ON d1.Room_Id = d2.RoomId WHERE d2.Rent_Per_Day = '500' --64.Display the younger female doctor whose name does not starts with 'A' and not a 'pediatrician' SELECT d1.DoctorId AS [DOC_ID], d1.Doctor_Name AS [DOC_NAME], d1.Gender AS [DOC_GENDER], d1.Specialist AS [DOC_SPECIAL], d1.Date_Of_birth AS [DOC_DOB], DATEDIFF(YEAR,d1.Date_Of_birth,GETDATE()) AS AGE FROM dbo.DOCTORMASTER d1 WHERE d1.Gender ='F' AND d1.Doctor_Name NOT LIKE 'a%' AND d1.Specialist NOT IN ('pediatrician') AND DATEDIFF(YEAR,d1.Date_Of_birth,GETDATE()) = (SELECT MIN(DATEDIFF(YEAR,d1.Date_Of_birth,GETDATE())) FROM dbo.DOCTORMASTER d1) --65.Display the female out patients whose age is below 30 and paid the total amount > 5000 SELECT d1.Patient_Id AS PAT_ID, d1.Patient_Name AS PAT_NAME, d1.Sex AS PAT_SEX, d1.DateOfBirth AS PAT_DOB, d2.Total_Amount AS [TOTAL>5000], DATEDIFF(year,d1.DateOfBirth,GETDATE()) AS AGE FROM dbo.PATIENTS_MASTER d1 JOIN dbo.FEES_OUT_PATIENTS d2 ON d1.Patient_Id = d2.Patient_Id WHERE DATEDIFF(year,d1.DateOfBirth,GETDATE()) < 30 AND d1.Sex = 'F' --66.Display the male doctor whose sum of in patient and out patient fees is minimum SELECT d1.DoctorID AS [DOC_ID], d1.Doctor_Name As [DOC_NAME], d1.Gender AS [DOC_GENDER], SUM(d2.Total_Amount) AS [SUM_IN_PATIENT], SUM(d3.Total_Amount) AS [SUM_OUT_PATIENT], (d2.Total_Amount + d3.Total_Amount ) AS [TOTAL_AMOUNT] FROM dbo.DOCTORMASTER d1 JOIN dbo.FEES_IN_PATIENTS d2 ON d2.Doctor_Id = d1.DoctorID JOIN dbo.FEES_OUT_PATIENTS d3 ON d3.Doctor_ID = d1.DoctorID

WHERE (d2.Total_Amount + d3.Total_Amount ) = (SELECT (MIN(d2.Total_Amount + d3.Total_Amount )) FROM dbo.FEES_IN_PATIENTS d2 JOIN dbo.FEES_OUT_PATIENTS d3 ON d2.Doctor_Id = d3.Doctor_Id ) GROUP BY d1.DoctorID,d1.Doctor_Name,d1.Gender,d2.Total_Amount,d3.Total_Amount --67.Display the male patient details in room number 3 and his age is less than 12 SELECT d1.Patient_Id AS PAT_ID, d3.Patient_Name AS PAT_NAME, d3.Sex AS PAT_SEX, d3.DateOfBirth AS PAT_DOB, d1.Room_Id AS ROOM_NO, DATEDIFF(year,d3.DateOfBirth,GETDATE()) AS AGE FROM dbo.PATIENTS_DETAILS d1 JOIN dbo.ROOM_MASTER d2 ON d1.Room_Id = d2.Room_Id JOIN dbo.PATIENTS_MASTER d3 ON d1.Patient_Id = d3.Patient_Id WHERE d3.Sex = 'F' AND DATEDIFF(year,d3.DateOfBirth,GETDATE()) < 12 --68.Display the number of patients discharged between 31/1/2008 to 31/3/2008 who have the symptoms of asthma SELECT COUNT(*) AS [COUNT] FROM dbo.PATIENTS_DETAILS d1 WHERE d1.Date_Of_Discharge IN (SELECT d1.Date_Of_Discharge FROM dbo.PATIENTS_DETAILS d1 WHERE d1.Date_Of_Discharge BETWEEN '1/31/2008' AND '3/31/2008' ) --69.Display the doctor who gets second highest fees for out patients in the hospital SELECT * FROM DOCTOR_FEES_MASTER SELECT TOP 1 d1.Doctor_Id AS DOC_ID, MAX(In_Patients) AS SECOND_LARGEST FROM DOCTOR_FEES_MASTER d1 WHERE In_Patients < (SELECT MAX(In_Patients) FROM DOCTOR_FEES_MASTER d1) GROUP BY d1.Doctor_Id --70.Display the in patient who pays second highest amount in the hospital SELECT TOP 1 d1.Doctor_Id AS DOC_ID, MAX(In_Patients) AS SECOND_LARGEST FROM DOCTOR_FEES_MASTER d1 --JOIN WHERE In_Patients < (SELECT MAX(In_Patients) FROM DOCTOR_FEES_MASTER d1) GROUP BY d1.Doctor_Id --71.Display the doctor who get the fees higher from the in patient than the amount specied in the fees master SELECT d1.DoctorId AS DOC_ID, d1.Doctor_Name AS DOC_NAME, d2.Doctor_Fees AS DOC_FEES FROM dbo.DOCTORMASTER d1 JOIN dbo.FEES_IN_PATIENTS d2 ON d1.DoctorId = d2.Doctor_Id JOIN dbo.DOCTOR_FEES_MASTER d3 ON d3.Doctor_Id = d2.Doctor_Id

WHERE d2.Doctor_Fees > d3.In_Patients GROUP BY d1.DoctorId,d1.Doctor_Name,d2.Doctor_Fees --72.Display the female in-patient who is in the AC room for a long time SELECT d1.Patient_Id AS PAT_ID, d3.Patient_Name AS PAT_NAME, d3.Sex AS PAT_SEX, d2.Room_Id AS ROOM_NUM, d2.Room_Type AS ROOM_TYPE, d1.Date_Of_Visit AS DATE_OF_VISIT, d1.Date_Of_Discharge AS DATE_OF_DISCHARGE, DATEDIFF(day,d1.Date_Of_Visit,GETDATE()) AS DAYS_IN_HOSPITAL FROM dbo.PATIENTS_DETAILS d1 JOIN dbo.ROOM_MASTER d2 ON d1.Room_Id = d2.Room_Id JOIN dbo.PATIENTS_MASTER d3 ON d3.Patient_Id = d1.Patient_Id WHERE DATEDIFF(day,d1.Date_Of_Visit,GETDATE()) = (SELECT (MAX(DATEDIFF(day,d1.Date_Of_Visit,GETDATE()))) FROM dbo.PATIENTS_DETAILS d1 JOIN dbo.ROOM_MASTER d2 ON d1.Room_Id = d2.Room_Id JOIN dbo.PATIENTS_MASTER d3 ON d3.Patient_Id = d1.Patient_Id WHERE d2.Room_Type = 'AC' ) --73.Display the female patient who is not suffering from ashma SELECT d1.Patient_Id AS PAT_ID, d3.Patient_Name AS PAT_NAME, d3.Sex AS PAT_SEX, d1.Disease AS PAT_DISEASE FROM dbo.PATIENTS_DETAILS d1 JOIN dbo.PATIENTS_MASTER d3 ON d3.Patient_Id = d1.Patient_Id WHERE d3.Sex = 'F' AND d1.Disease <> 'ASTHMA' --WHERE d3.Sex = 'F' AND d1.Disease NOT IN 'ASTHMA' --74.Display the number of patients who are not yet discharged USE hospital1 GO SELECT COUNT(*) AS [YET TO B DISCHRGE] FROM dbo.PATIENTS_DETAILS d1 WHERE d1.Date_Of_Discharge > GETDATE() --75.Display the number of female patients discharged last month SELECT COUNT(*) AS [DISCAHREG LAST MONTH] FROM dbo.PATIENTS_DETAILS d1 WHERE DATEDIFF(month,d1.Date_Of_Discharge,GETDATE()) = 1 AND DATEDIFF(year,d1.Date_Of_Discharge,GETDATE()) = 0 --76.Display the in patient details who visited DR. Ram for the treatment 'Chronic treatment' SELECT d1.Patient_Id AS [PAT_ID], d1.Patient_Name AS [PAT_NAME], d4.Doctor_Name AS [DOC_NAME], d3.Treatment AS [DOC_TREAT] FROM dbo.PATIENTS_MASTER d1 JOIN dbo.FEES_IN_PATIENTS d2

ON d1.Patient_Id = d2.Patient_Id JOIN dbo.PATIENTS_DETAILS d3 ON d2.Patient_Id = d3.Patient_Id JOIN dbo.DOCTORMASTER d4 ON d4.DoctorId = d2.Doctor_Id WHERE d4.Doctor_Name = 'RAM' AND d3.Treatment = 'Chronic' --77.Find out the average total amount paid by the out patients who visited DR.Raju SELECT /*d1.Patient_Id AS [PAT_ID], d1.Patient_Name AS [PAT_NAME], d2.Total_Amount AS [TOTAL], d3.DoctorId AS [DOC_ID], d3.Doctor_NAme AS [DOC_NAME]*/ AVG(d2.Total_Amount) AS [AVG] FROM dbo.PATIENTS_MASTER d1 JOIN dbo.FEES_OUT_PATIENTS d2 ON d1.Patient_Id = d2.Patient_Id JOIN dbo.DOCTORMASTER d3 ON d3.DoctorId = d2.Doctor_Id WHERE d3.Doctor_NAme = 'Ram' --GROUP BY d3.DoctorId, d3.Doctor_NAme,d2.Total_Amount --78.Display the patient details who visited DR.Raju for the treatment of 'Exercise and physical activity' from 1/1/2008 to 2/2/2008 SELECT d1.Patient_Id AS [PAT_ID], d1.Patient_Name AS [PAT_NAME], d3.Doctor_Name AS [DOC_NAME], d2.Treatment AS [TREAT] FROM dbo.PATIENTS_MASTER d1 JOIN dbo.PATIENTS_DETAILS d2 ON d1.Patient_Id = d2.Patient_Id JOIN dbo.DOCTORMASTER d3 ON d3.DoctorId = d2.Doctor_Id WHERE d3.Doctor_Name = 'rose' AND d2.Treatment = 'AZT' AND d2.Date_Of_Visit BETWEEN '1/1/2008 ' AND '2/2/2008' --79.Display the patient details, who dint give the phone number SELECT * FROM dbo.PATIENTS_MASTER d1 WHERE d1.Phone IN('') --80.How many patients paid 10000 to 20000 for the treatment SELECT COUNT(*) AS [COUNT] FROM dbo.PATIENTS_DETAILS d1 JOIN dbo.FEES_IN_PATIENTS d2 ON d1.Patient_Id = d2.Patient_Id JOIN dbo.FEES_OUT_PATIENTS d3 ON d2.Patient_Id = d3.Patient_Id WHERE (d2.Total_Amount+d3.Total_Amount) = (SELECT (d2.Total_Amount+d3.Total_Amount)AS [TOTAL_IN_OUT] FROM dbo.FEES_IN_PATIENTS d2 JOIN dbo.FEES_OUT_PATIENTS d3 ON d2.Patient_Id = d3.Patient_Id WHERE (d2.Total_Amount+d3.Total_Amount) BETWEEN '10000' AND '20001') --81.Display the patients whose age is below 20 and suffering from Psoriasis

SELECT p1.*, p2.disease FROM dbo.PATIENTS_MASTER p1 JOIN dbo.PATIENTS_DETAILS p2 ON p1.Patient_Id = p2.Patient_Id WHERE p1.Age <20 AND p2.disease

= 'psoriasis'

--82.Display the doctor details who celebrated their birthday with in this week SELECT d1.* FROM dbo.DOCTORMASTER d1 WHERE DATEPART(week,d1.Date_Of_Birth) = DATEPART(week,GETDATE()) --83.Display the Doctors details whose name contains exactly 2 letters 'A' SELECT d1.* FROM dbo.DOCTORMASTER d1 WHERE d1.Doctor_Name LIKE '%[a]%[a]%' --84.Display the doctors who were born on the last date of a month SELECT d1.* FROM dbo.DOCTORMASTER d1 WHERE DATEPART(day,d1.Date_Of_Birth) IN (30,31,29,28) SELECT DATEPART(weekday, GETDATE()) SELECT DATEADD(ms,-5,DATEADD(mm, DATEDIFF(m,0,GETDATE() )+1, 0)) SELECT DATEADD(month,DATEDIFF(month,0,GETDATE())+1,0) SELECT DATEADD(ms,-5,DATEADD(mm, DATEDIFF(m,0,d1.Date_Of_Birth )+1, 0))FROM dbo.DOCTORMASTER d1 SELECT d1.* FROM dbo.DOCTORMASTER d1 WHERE DATEPART(day,d1.Date_Of_Birth) IN (SELECT DATEPART(day,DATEADD(ms,-5,DATEADD(mm, DATEDIFF(m,0,d1.Date_Of_Birth )+1, 0)))AS LAST_DATE_MONTH FROM dbo.DOCTORMASTER d1) --85.Display The Patient whose name contains more than one word SELECT p1.* FROM dbo.PATIENTS_MASTER p1 WHERE p1.Patient_Name LIKE '% %'

--86.Display the number of patients checked by each doctor SELECT d1.Doctor_Id, COUNT(*) AS [NO_OF_PATIENTS_CHECKED] FROM dbo.Patients_Details d1 GROUP BY d1.Doctor_Id

--90.Display the doctor who checked most patients SELECT TOP 1 COUNT(Patient_Id) AS [COUNT_OF_PATIENTS], d1.Doctor_Id AS [DOC_ID] FROM dbo.PATIENTS_DETAILS d1 GROUP BY d1.Doctor_Id ORDER BY COUNT(Patient_Id) DESC --91.Display the out patient details who paid the same fees SELECT p.patient_name, q.Doctor_Fees FROM dbo.Patients_Master p JOIN dbo.FEES_OUT_PATIENTS q ON p.Patient_ID = q.Patient_ID --GROUP BY q.Doctor_Fees,p.patient_name --HAVING COUNT(q.Doctor_Fees)>1 --WHERE LEFT (q.Doctor_Fees,3) = RIGHT(q.Doctor_Fees,3) --91.Display number of the out patient details who paid the same fees SELECT COUNT(*) AS [PAT_SAME_AMOUNT] FROM dbo.Patients_Master p JOIN dbo.FEES_OUT_PATIENTS q ON p.Patient_ID = q.Patient_ID GROUP BY q.Doctor_Fees HAVING COUNT(*) > 1

You might also like