0% found this document useful (0 votes)
9 views

Practice Set 1

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

Practice Set 1

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

Q 1.

Retrieve the projects with their names and the total years of experience of all employees
working on them.

A. SELECT Project_Name, AVG(Emp_Expertiese) AS Total_Experience FROM Project INNER


JOIN Work ON Project.Project_ID = Work.Project_ID INNER JOIN Employee ON Work.Emp_ID
= Employee.Emp_ID GROUP BY Project_Name

B. SELECT Project_Name, MAX(Emp_Expertiese) AS Total_Experience FROM Project INNER


JOIN Work ON Project.Project_ID = Work.Project_ID INNER JOIN Employee ON Work.Emp_ID
= Employee.Emp_ID GROUP BY Project_Name

C. SELECT Project_Name, SUM(Emp_Expertiese) AS Total_Experience FROM Project INNER


JOIN Work ON Project.Project_ID = Work.Project_ID INNER JOIN Employee ON Work.Emp_ID
= Employee.Emp_ID GROUP BY Project_Name

D. SELECT Project_Name, MIN(Emp_Expertiese) AS Total_Experience FROM Project INNER


JOIN Work ON Project.Project_ID = Work.Project_ID INNER JOIN Employee ON Work.Emp_ID
= Employee.Emp_ID GROUP BY Project_Name

Q 2. Update the designation of employees to 'Senior Developer' if they have more than 5 years of
experience, 'Junior Developer' if they have more than 2 years of experience, and 'Intern' otherwise.

A. UPDATE Employee SET Emp_Desigination = CASE WHEN Emp_Expertiese > 2 THEN


'Intern' WHEN Emp_Expertiese > 5 THEN 'Senior Developer' ELSE 'Junior Developer' END

B. UPDATE Employee SET Emp_Desigination = CASE WHEN Emp_Expertiese > 2 THEN


'Intern' WHEN Emp_Expertiese > 5 THEN 'Junior Developer' ELSE 'Senior Developer' END

C. UPDATE Employee SET Emp_Desigination = CASE WHEN Emp_Expertiese > 5 THEN


'Senior Developer' WHEN Emp_Expertiese > 2 THEN 'Junior Developer' ELSE 'Intern' END

D. UPDATE Employee SET Emp_Desigination = CASE WHEN Emp_Expertiese > 5 THEN 'Junior
Developer' WHEN Emp_Expertiese > 2 THEN 'Intern' ELSE 'Senior Developer' END

Q 3. Find the doctors who have treated the most patients and show the total number of patients
they have treated.

A. SELECT D.Dr_Name, COUNT(T.P_id) AS Total_Patients FROM Doctor D INNER JOIN


Treatment T ON D.Dr_id = T.Dr_id GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(T.P_id) =
(SELECT MAX(Total_Patients) FROM (SELECT D.Dr_id, COUNT(T.P_id) AS Total_Patients FROM
Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id GROUP BY D.Dr_id) AS Subquery);

B. SELECT D.Dr_Name, COUNT(T.P_id) AS Total_Patients FROM Doctor D INNER JOIN


Treatment T ON D.Dr_id = T.Dr_id GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(T.P_id) =
(SELECT AVG(Total_Patients) FROM (SELECT D.Dr_id, COUNT(T.P_id) AS Total_Patients FROM
Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id GROUP BY D.Dr_id) AS Subquery);

C. SELECT D.Dr_Name, COUNT(T.P_id) AS Total_Patients FROM Doctor D INNER JOIN


Treatment T ON D.Dr_id = T.Dr_id GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(T.P_id) =
(SELECT MIN(Total_Patients) FROM (SELECT D.Dr_id, COUNT(T.P_id) AS Total_Patients FROM
Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id GROUP BY D.Dr_id) AS Subquery);

D. SELECT D.Dr_Name, COUNT(T.P_id) AS Total_Patients FROM Doctor D INNER JOIN


Treatment T ON D.Dr_id = T.Dr_id GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(T.P_id) =
(SELECT SUM(Total_Patients) FROM (SELECT D.Dr_id, COUNT(T.P_id) AS Total_Patients FROM
Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id GROUP BY D.Dr_id) AS Subquery);

Q 4. List the doctors who have treated patients with 'Heart Disease' and 'Hypertension,' and show
their names and the total number of such patients.

A. SELECT D.Dr_Name, COUNT(DISTINCT T.P_id) AS Total_Patients FROM Doctor D INNER


JOIN Treatment T ON D.Dr_id = T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id WHERE
P.P_Disease IN ('Heart Disease', 'Hypertension') GROUP BY D.Dr_Name HAVING
COUNT(DISTINCT T.P_id) >= 2;

B. SELECT D.Dr_Name, COUNT(DISTINCT T.P_id) AS Total_Patients FROM Doctor D INNER


JOIN Treatment T ON D.Dr_id = T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id WHERE
P.P_Disease IN ('Heart Disease', 'Hypertension') GROUP BY D.Dr_Name HAVING
COUNT(DISTINCT T.P_id) > 2;

C. SELECT D.Dr_Name, COUNT(DISTINCT T.P_id) AS Total_Patients FROM Doctor D INNER


JOIN Treatment T ON D.Dr_id = T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id WHERE
P.P_Disease IN ('Cancer', 'Diabetes') GROUP BY D.Dr_Name HAVING COUNT(DISTINCT T.P_id)
> 2;

D. SELECT D.Dr_Name, COUNT(DISTINCT T.P_id) AS Total_Patients FROM Doctor D INNER


JOIN Treatment T ON D.Dr_id = T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id WHERE
P.P_Disease IN ('Cancer', 'Diabetes') GROUP BY D.Dr_Name HAVING COUNT(DISTINCT T.P_id)
>= 2;

Q 5. Find the doctors who have treated patients with 'Asthma' and 'Allergies,' and show their names
and the total number of such patients.

A. SELECT D.Dr_Name, COUNT(DISTINCT T.P_id) AS Total_Patients FROM Doctor D INNER


JOIN Treatment T ON D.Dr_id = T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id WHERE
P.P_Disease IN ('Asthma', 'Allergies') GROUP BY D.Dr_id, D.Dr_Name HAVING
COUNT(DISTINCT T.P_id) = 1;

B. SELECT D.Dr_Name, COUNT(DISTINCT T.P_id) AS Total_Patients FROM Doctor D INNER


JOIN Treatment T ON D.Dr_id = T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id WHERE
P.P_Disease IN ('Asthma', 'Allergies') GROUP BY D.Dr_id, D.Dr_Name HAVING
COUNT(DISTINCT T.P_id) = 2;

C. SELECT D.Dr_Name, COUNT(DISTINCT T.P_id) AS Total_Patients FROM Doctor D INNER


JOIN Treatment T ON D.Dr_id = T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id WHERE
P.P_Disease IN ('Cancer', 'Hypertension') GROUP BY D.Dr_id, D.Dr_Name HAVING
COUNT(DISTINCT T.P_id) = 1;

D. SELECT D.Dr_Name, COUNT(DISTINCT T.P_id) AS Total_Patients FROM Doctor D INNER


JOIN Treatment T ON D.Dr_id = T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id WHERE
P.P_Disease IN ('Cancer', 'Hypertension') GROUP BY D.Dr_id, D.Dr_Name HAVING
COUNT(DISTINCT T.P_id) = 2;

Q 6. Retrieve the names of doctors who have not treated patients with 'Cancer' and have an
experience of more than 10 years.

A. SELECT D.Dr_Name FROM Doctor D WHERE D.Dr_specialization IN (SELECT DISTINCT


D.Dr_specialization FROM Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER
JOIN Patient P ON T.P_id = P.P_id WHERE P.P_Disease = 'Cancer') AND D.Dr_Experience <=
10;

B. SELECT D.Dr_Name FROM Doctor D WHERE D.Dr_specialization IN (SELECT DISTINCT


D.Dr_specialization FROM Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER
JOIN Patient P ON T.P_id = P.P_id WHERE P.P_Disease = 'Cancer') AND D.Dr_Experience > 10;

C. SELECT D.Dr_Name FROM Doctor D WHERE D.Dr_specialization NOT IN (SELECT DISTINCT


D.Dr_specialization FROM Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER
JOIN Patient P ON T.P_id = P.P_id WHERE P.P_Disease = 'Cancer') AND D.Dr_Experience <=
10;

D. SELECT D.Dr_Name FROM Doctor D WHERE D.Dr_specialization NOT IN (SELECT DISTINCT


D.Dr_specialization FROM Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER
JOIN Patient P ON T.P_id = P.P_id WHERE P.P_Disease = 'Cancer') AND D.Dr_Experience > 10;

Q 7. Calculate the average age of patients who are treated by doctors specializing in 'Pediatrics.'
A. SELECT AVG(YEAR(CURRENT_DATE) - YEAR(P.P_Birthdate)) AS Avg_Age FROM Patient P
INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id
WHERE D.Dr_specialization = 'Oncology';

B. SELECT AVG(YEAR(CURRENT_DATE) - YEAR(P.P_Birthdate)) AS Avg_Age FROM Patient P


INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id
WHERE D.Dr_specialization = 'Pediatrics';

C. SELECT AVG(YEAR(CURRENT_DATE) - YEAR(P.P_Birthdate)) AS Avg_Age FROM Patient P


INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id
WHERE D.Dr_specialization = 'Cardiology';

D. SELECT AVG(YEAR(CURRENT_DATE) - YEAR(P.P_Birthdate)) AS Avg_Age FROM Patient P


INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id
WHERE D.Dr_specialization = 'Surgery';

Q 8. Retrieve the names of employees and their corresponding designations, but if the designation is
'Manager,' display it as 'MGR,' 'Senior Developer' as 'Sr. Dev,' and 'Junior Developer' as 'Jr. Dev.'

A. SELECT Emp_Name, CASE WHEN Emp_Desigination = 'Manager' THEN 'MGR' WHEN


Emp_Desigination = 'Junior Developer' THEN 'Jr. Dev' WHEN Emp_Desigination = 'Senior
Developer' THEN 'Sr. Dev' ELSE Emp_Desigination END FROM Employee

B. SELECT Emp_Name, CASE Emp_Desigination WHEN 'Manager' THEN 'MGR' WHEN 'Senior
Developer' THEN 'Sr. Dev' WHEN 'Junior Developer' THEN 'Jr. Dev' ELSE Emp_Desigination
END FROM Employee

C. SELECT Emp_Name, CASE WHEN Emp_Desigination = 'Manager' THEN 'MGR' WHEN


Emp_Desigination = 'Senior Developer' THEN 'Sr. Dev' WHEN Emp_Desigination = 'Junior
Developer' THEN 'Jr. Dev' ELSE Emp_Desigination END FROM Employee

D. SELECT Emp_Name, CASE Emp_Desigination WHEN 'Manager' THEN 'MGR' WHEN 'Junior
Developer' THEN 'Jr. Dev' WHEN 'Senior Developer' THEN 'Sr. Dev' ELSE Emp_Desigination
END FROM Employee

Q 9. List the employees who have worked on projects in multiple project categories and classify them
as 'Versatile' employees.

A. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
GROUP BY Emp_ID HAVING COUNT(DISTINCT Project_id) > 1)

B. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
GROUP BY Emp_ID HAVING COUNT(Project_id) > 1)
C. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
GROUP BY Emp_ID HAVING COUNT(DISTINCT Project_id) = 1)

D. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
GROUP BY Emp_ID HAVING COUNT(Project_id) = 1)

Q 10. Find the doctors who have treated patients from 'Chicago' and have performed at least one 'CT
Scan' test.

A. SELECT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER
JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P.id WHERE P.P_City =
'New York City' AND TS.Test_Name = 'MRI';

B. SELECT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER
JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_City =
'Chicago' AND TS.Test_Name = 'CT Scan';

C. SELECT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER
JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_City =
'New York City' AND TS.Test_Name = 'CT Scan';

D. SELECT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER
JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_City =
'Chicago' AND TS.Test_Name = 'MRI';

Q 11. Update the salaries of employees by adding 10% for employees with more than 3 years of
experience, 15% for employees with more than 5 years, and 20% for employees with more than 10
years.

A. UPDATE Employee SET Emp_Salary = Emp_Salary * 1.2 WHERE Emp_Expertiese > 3

B. UPDATE Employee SET Emp_Salary = Emp_Salary * 1.15 WHERE Emp_Expertiese > 5

C. UPDATE Employee SET Emp_Salary = Emp_Salary * 1.2 WHERE Emp_Expertiese > 10

D. UPDATE Employee SET Emp_Salary = Emp_Salary * 1.1 WHERE Emp_Expertiese > 3

Q 12. List the projects and their categories, but if the project category is 'Development,' display it as
'DEV,' 'Research' as 'RSR,' and 'Management' as 'MGT.'
A. SELECT Project_Name, CASE Project_Categoery WHEN 'Development' THEN 'DEV' WHEN
'Management' THEN 'MGT' WHEN 'Research' THEN 'RSR' ELSE Project_Categoery END FROM
Project

B. SELECT Project_Name, CASE Project_Categoery WHEN 'Development' THEN 'MGT' WHEN


'Research' THEN 'DEV' WHEN 'Management' THEN 'RSR' ELSE Project_Categoery END FROM
Project

C. SELECT Project_Name, CASE WHEN Project_Categoery = 'Development' THEN 'DEV'


WHEN Project_Categoery = 'Research' THEN 'RSR' WHEN Project_Categoery = 'Management'
THEN 'MGT' ELSE Project_Categoery END FROM Project

D. SELECT Project_Name, CASE Project_Categoery WHEN 'Development' THEN 'DEV' WHEN


'Research' THEN 'RSR' WHEN 'Management' THEN 'MGT' ELSE Project_Categoery END FROM
Project

Q 13. Retrieve the projects and their categories with the count of employees working on each
project.

A. SELECT Project_Name, Project_Categoery, COUNT(Emp_ID) AS Employee_Count FROM


Project LEFT JOIN Work ON Project.Project_ID = Work.Project_ID GROUP BY Project_Name,
Project_Categoery

B. SELECT Project_Name, Project_Categoery, MAX(Emp_ID) AS Employee_Count FROM


Project RIGHT JOIN Work ON Project.Project_ID = Work.Project_ID GROUP BY Project_Name,
Project_Categoery

C. SELECT Project_Name, Project_Categoery, SUM(Emp_ID) AS Employee_Count FROM


Project INNER JOIN Work ON Project.Project_ID = Work.Project_ID GROUP BY Project_Name,
Project_Categoery

D. SELECT Project_Name, Project_Categoery, AVG(Emp_ID) AS Employee_Count FROM


Project LEFT JOIN Work ON Project.Project_ID = Work.Project_ID GROUP BY Project_Name,
Project_Categoery

Q 14. List the projects that have more than two employees assigned to them.

A. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_ID FROM


Work GROUP BY Project_id HAVING COUNT(Emp_ID) = 2)

B. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_ID FROM


Work GROUP BY Project_id HAVING COUNT(Emp_ID) < 2)
C. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_ID FROM
Work GROUP BY Project_id HAVING COUNT(Emp_ID) > 2)

D. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_ID FROM


Work GROUP BY Project_id HAVING COUNT(Emp_ID) = 3)

Q 15. List all employees who have worked on projects in the 'Development' category.

A. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id = (SELECT Project_ID FROM Project WHERE Project_Categoery <>
'Development'))

B. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id IN (SELECT Project_ID FROM Project WHERE Project_Categoery <>
'Development'))

C. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id = (SELECT Project_ID FROM Project WHERE Project_Categoery =
'Development'))

D. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id IN (SELECT Project_ID FROM Project WHERE Project_Categoery =
'Development'))

Q 16. Identify employees who have worked on projects with a budget exceeding $75,000, and if they
have less than 5 years of experience, grant them a bonus of 5% of the project's budget.

A. UPDATE Employee SET Emp_Bonus = Project_Budget * 0.05 FROM Employee INNER JOIN
Work ON Employee.Emp_ID = Work.Emp_ID INNER JOIN Project ON Work.Project_ID =
Project.Project_ID WHERE Project_Budget >= 75000 AND Emp_Expertiese >= 5

B. UPDATE Employee SET Emp_Bonus = Project_Budget * 0.05 FROM Employee INNER JOIN
Work ON Employee.Emp_ID = Work.Emp_ID INNER JOIN Project ON Work.Project_ID =
Project.Project_ID WHERE Project_Budget >= 75000 AND Emp_Expertiese < 5

C. UPDATE Employee SET Emp_Bonus = Project_Budget * 0.05 FROM Employee INNER JOIN
Work ON Employee.Emp_ID = Work.Emp_ID INNER JOIN Project ON Work.Project_ID =
Project.Project_ID WHERE Project_Budget > 75000 AND Emp_Expertiese >= 5

D. UPDATE Employee SET Emp_Bonus = Project_Budget * 0.05 FROM Employee INNER JOIN
Work ON Employee.Emp_ID = Work.Emp_ID INNER JOIN Project ON Work.Project_ID =
Project.Project_ID WHERE Project_Budget > 75000 AND Emp_Expertiese < 5
Q 17. Retrieve the names of patients who are allergic to 'Penicillin' and are treated by doctors
specializing in 'Allergy.'

A. SELECT P.P_Name FROM Patient P WHERE P.P_Allergies LIKE '%Penicillin%' AND P.P_id IN
(SELECT T.P_id FROM Treatment T INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE
D.Dr_specialization = 'Allergy')

B. SELECT P.P_Name FROM Patient P INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN
Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_Allergies LIKE '%Penicillin%' AND
D.Dr_specialization = 'Allergy'

C. SELECT P.P_Name FROM Patient P INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN
Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_Allergies LIKE '%Penicillin%' AND
D.Dr_specialization = 'Allergy'

D. SELECT P.P_Name FROM Patient P INNER JOIN Treatment T ON P.P_id = T.P_id INNER
JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_Allergies LIKE '%Penicillin%' AND P.P_id IN
(SELECT T.P_id FROM Treatment T INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE
D.Dr_specialization = 'Allergy')

Q 18. Find the doctors who have treated patients from 'San Francisco' and have had at least one
patient from 'New York City.'

A. SELECT D.Dr_Name FROM Doctor D INNER JOIN Treatment T1 ON D.Dr_id = T1.Dr_id


INNER JOIN Patient P1 ON T1.P_id = P1.P_id WHERE P1.P_City = 'San Francisco' AND EXISTS
(SELECT 1 FROM Treatment T2 INNER JOIN Patient P2 ON T2.P_id = P2.P_id WHERE T2.Dr_id
= D.Dr_id AND P2.P_City = 'New York City');

B. SELECT D.Dr_Name FROM Doctor D INNER JOIN Treatment T1 ON D.Dr_id = T1.Dr_id


INNER JOIN Patient P1 ON T1.P_id = P1.P_id WHERE P1.P_City = 'San Francisco' AND NOT
EXISTS (SELECT 1 FROM Treatment T2 INNER JOIN Patient P2 ON T2.P_id = P2.P_id WHERE
T2.Dr_id = D.Dr_id AND P2.P_City = 'Los Angeles');

C. SELECT D.Dr_Name FROM Doctor D INNER JOIN Treatment T1 ON D.Dr_id = T1.Dr_id


INNER JOIN Patient P1 ON T1.P_id = P1.P_id WHERE P1.P_City = 'New York City' AND EXISTS
(SELECT 1 FROM Treatment T2 INNER JOIN Patient P2 ON T2.P_id = P2.P_id WHERE T2.Dr_id
= D.Dr_id AND P2.P_City = 'San Francisco');

D. SELECT D.Dr_Name FROM Doctor D INNER JOIN Treatment T1 ON D.Dr_id = T1.Dr_id


INNER JOIN Patient P1 ON T1.P_id = P1.P_id WHERE P1.P_City = 'Los Angeles' AND NOT
EXISTS (SELECT 1 FROM Treatment T2 INNER JOIN Patient P2 ON T2.P_id = P2.P_id WHERE
T2.Dr_id = D.Dr_id AND P2.P_City = 'Chicago');
Q 19. List the patients who have been treated by doctors from the same city as the patient and show
the names of the doctors.

A. SELECT P.P_Name, D.Dr_Name FROM Patient P INNER JOIN Treatment T ON P.P_id =


T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_City = D.Dr_City AND P.P_id =
D.Dr_id;

B. SELECT P.P_Name, D.Dr_Name FROM Patient P INNER JOIN Treatment T ON P.P_id =


T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_City <> D.Dr_City AND P.P_id !=
D.Dr_id;

C. SELECT P.P_Name, D.Dr_Name FROM Patient P INNER JOIN Treatment T ON P.P_id =


T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_City <> D.Dr_City AND P.P_id =
D.Dr_id;

D. SELECT P.P_Name, D.Dr_Name FROM Patient P INNER JOIN Treatment T ON P.P_id =


T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_City = D.Dr_City AND P.P_id !=
D.Dr_id;

Q 20. Find the projects with the highest total budget. If multiple projects have the same highest
budget, choose the one with the most employees.

A. SELECT Project_Name FROM Project ORDER BY Project_Budget DESC, (SELECT COUNT(*)


FROM Work WHERE Project.Project_ID = Work.Project_ID) DESC LIMIT 1

B. SELECT Project_Name FROM Project ORDER BY Project_Budget DESC, (SELECT COUNT(*)


FROM Work WHERE Project.Project_ID = Work.Project_ID) ASC LIMIT 1

C. SELECT Project_Name FROM Project ORDER BY Project_Budget ASC, (SELECT COUNT(*)


FROM Work WHERE Project.Project_ID = Work.Project_ID) DESC LIMIT 1

D. SELECT Project_Name FROM Project ORDER BY Project_Budget ASC, (SELECT COUNT(*)


FROM Work WHERE Project.Project_ID = Work.Project_ID) ASC LIMIT 1

Q 21. Retrieve the names of doctors who have treated the same patient more than once, and show
the patient's name and the number of treatments.

A. SELECT D.Dr_Name, P.P_Name, COUNT(T.Treatment_id) AS Total_Treatments FROM


Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER JOIN Patient P ON T.P_id =
P.P_id WHERE T.P_id IN (SELECT T.P_id FROM Treatment T GROUP BY T.P_id HAVING
COUNT(Treatment_id) = 1) GROUP BY D.Dr_Name, P.P_Name;

B. SELECT D.Dr_Name, P.P_Name, COUNT(T.Treatment_id) AS Total_Treatments FROM


Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER JOIN Patient P ON T.P_id =
P.P_id WHERE T.P_id IN (SELECT T.P_id FROM Treatment T GROUP BY T.P_id HAVING
COUNT(T.Treatment_id) > 1) GROUP BY D.Dr_Name, P.P_Name;

C. SELECT D.Dr_Name, P.P_Name, COUNT(T.Treatment_id) AS Total_Treatments FROM


Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER JOIN Patient P ON T.P_id =
P.P_id WHERE T.P_id IN (SELECT T.P_id FROM Treatment T GROUP BY T.P_id HAVING
COUNT(Treatment_id) = 2) GROUP BY D.Dr_Name, P.P_Name;

D. SELECT D.Dr_Name, P.P_Name, COUNT(T.Treatment_id) AS Total_Treatments FROM


Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER JOIN Patient P ON T.P_id =
P.P_id WHERE T.P_id NOT IN (SELECT T.P_id FROM Treatment T GROUP BY T.P_id HAVING
COUNT(Treatment_id) > 1) GROUP BY D.Dr_Name, P.P_Name;

Q 22. Calculate the average project duration in days, but if a project has a duration of more than 90
days, categorize it as 'Long-Term,' between 30 and 90 days as 'Medium-Term,' and less than 30 days
as 'Short-Term.'

A. SELECT AVG(Project_Duration), CASE WHEN AVG(Project_Duration) >= 30 THEN


'Medium-Term' WHEN AVG(Project_Duration) > 90 THEN 'Long-Term' ELSE 'Short-Term' END
FROM Project

B. SELECT AVG(Project_Duration), CASE WHEN AVG(Project_Duration) >= 30 THEN 'Long-


Term' WHEN AVG(Project_Duration) > 90 THEN 'Medium-Term' ELSE 'Short-Term' END FROM
Project

C. SELECT AVG(Project_Duration), CASE WHEN AVG(Project_Duration) > 90 THEN 'Long-


Term' WHEN AVG(Project_Duration) >= 30 THEN 'Medium-Term' ELSE 'Short-Term' END
FROM Project

D. SELECT AVG(Project_Duration), CASE WHEN AVG(Project_Duration) > 90 THEN 'Short-


Term' WHEN AVG(Project_Duration) >= 30 THEN 'Medium-Term' ELSE 'Long-Term' END FROM
Project

Q 23. Update the designation of employees with more than 10 years of experience to 'Senior
Developer.'

A. UPDATE Employee SET Emp_Desigination = 'Senior Developer' WHERE Emp_Expertiese <


10
B. UPDATE Employee SET Emp_Desigination = 'Senior Developer' WHERE Emp_Expertiese >
10

C. UPDATE Employee SET Emp_Desigination = 'Senior Developer' WHERE Emp_Expertiese


>= 10

D. UPDATE Employee SET Emp_Desigination = 'Senior Developer' WHERE Emp_Expertiese =


10

Q 24. Find the projects that have at least one employee with expertise in 'Java.'

A. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_ID FROM


Work WHERE Emp_ID IN (SELECT Emp_ID FROM Employee WHERE Emp_Expertiese = 'Java'))

B. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_ID FROM


Work WHERE Emp_ID IN (SELECT Emp_ID FROM Employee WHERE Emp_Expertiese = 'Java'))

C. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_ID FROM


Work WHERE Emp_ID IN (SELECT Emp_ID FROM Employee WHERE Emp_Expertiese LIKE
'%Java%'))

D. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_ID FROM


Work WHERE Emp_ID IN (SELECT Emp_ID FROM Employee WHERE Emp_Expertiese IN
('Java', 'Java Script')))

Q 25. Identify employees who have worked on projects with a budget exceeding $100,000 and have
more than 5 years of experience. Update their designation to 'Project Lead.'

A. UPDATE Employee SET Emp_Desigination = 'Project Lead' WHERE Emp_ID IN (SELECT


Emp_ID FROM Work INNER JOIN Project ON Work.Project_ID = Project.Project_ID WHERE
Project_Budget >= 100000 AND Emp_Expertiese >= 5)

B. UPDATE Employee SET Emp_Desigination = 'Project Lead' WHERE Emp_ID IN (SELECT


Emp_ID FROM Work INNER JOIN Project ON Work.Project_ID = Project.Project_ID WHERE
Project_Budget >= 100000 AND Emp_Expertiese > 5)

C. UPDATE Employee SET Emp_Desigination = 'Project Lead' WHERE Emp_ID IN (SELECT


Emp_ID FROM Work INNER JOIN Project ON Work.Project_ID = Project.Project_ID WHERE
Project_Budget > 100000 AND Emp_Expertiese >= 5)

D. UPDATE Employee SET Emp_Desigination = 'Project Lead' WHERE Emp_ID IN (SELECT


Emp_ID FROM Work INNER JOIN Project ON Work.Project_ID = Project.Project_ID WHERE
Project_Budget > 100000 AND Emp_Expertiese > 5)
Q 26. Find the projects that have employees with expertise in both 'Java' and 'Python.'

A. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_ID FROM


Work WHERE Emp_ID IN (SELECT Emp_ID FROM Employee WHERE Emp_Expertiese = 'Java'))
AND Project_ID IN (SELECT Project_ID FROM Work WHERE Emp_ID IN (SELECT Emp_ID FROM
Employee WHERE Emp_Expertiese = 'Python'))

B. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_ID FROM


Work WHERE Emp_ID IN (SELECT Emp_ID FROM Employee WHERE Emp_Expertiese = 'Java')
OR Emp_ID IN (SELECT Emp_ID FROM Employee WHERE Emp_Expertiese = 'Python'))

C. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_ID FROM


Work WHERE Emp_ID IN (SELECT Emp_ID FROM Employee WHERE Emp_Expertiese = 'Java')
AND Project_ID IN (SELECT Project_ID FROM Work WHERE Emp_ID IN (SELECT Emp_ID FROM
Employee WHERE Emp_Expertiese = 'Python')))

D. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_ID FROM


Work WHERE Emp_ID IN (SELECT Emp_ID FROM Employee WHERE Emp_Expertiese = 'Java')
AND Project_ID IN (SELECT Project_ID FROM Work WHERE Emp_ID IN (SELECT Emp_ID FROM
Employee WHERE Emp_Expertiese = 'Python')))

Q 27. Calculate the average salary for employees in each department, but if the average salary is
below $50,000, categorize the department as 'Low Pay,' between $50,000 and $75,000 as 'Average
Pay,' and above $75,000 as 'High Pay.'

A. SELECT Department, AVG(Emp_Salary), CASE WHEN AVG(Emp_Salary) < 50000 THEN


'Average Pay' WHEN AVG(Emp_Salary) >= 50000 AND AVG(Emp_Salary) <= 75000 THEN 'Low
Pay' ELSE 'High Pay' END FROM Employee GROUP BY Department

B. SELECT Department, AVG(Emp_Salary), CASE WHEN AVG(Emp_Salary) < 50000 THEN


'Low Pay' WHEN AVG(Emp_Salary) >= 50000 AND AVG(Emp_Salary) <= 75000 THEN 'Average
Pay' ELSE 'High Pay' END FROM Employee GROUP BY Department

C. SELECT Department, CASE WHEN AVG(Emp_Salary) < 50000 THEN 'High Pay' WHEN
AVG(Emp_Salary) >= 50000 AND AVG(Emp_Salary) <= 75000 THEN 'Low Pay' ELSE 'Average
Pay' END FROM Employee GROUP BY Department

D. SELECT Department, CASE WHEN AVG(Emp_Salary) < 50000 THEN 'Low Pay' WHEN
AVG(Emp_Salary) >= 50000 AND AVG(Emp_Salary) <= 75000 THEN 'High Pay' ELSE 'Average
Pay' END FROM Employee GROUP BY Department
Q 28. Calculate the total bonus for employees who have more than 3 years of experience. If the
bonus is above $2,000, categorize it as 'High Bonus,' between $1,000 and $2,000 as 'Medium Bonus,'
and below $1,000 as 'Low Bonus.'

A. SELECT Emp_Name, SUM(Emp_Bonus), CASE WHEN SUM(Emp_Bonus) > 2000 THEN


'High Bonus' WHEN SUM(Emp_Bonus) >= 1000 THEN 'Medium Bonus' ELSE 'Low Bonus' END
FROM Employee WHERE Emp_Expertiese > 3 GROUP BY Emp_Name

B. SELECT Emp_Name, SUM(Emp_Bonus), CASE WHEN SUM(Emp_Bonus) >= 1000 THEN


'Medium Bonus' WHEN SUM(Emp_Bonus) > 2000 THEN 'Low Bonus' ELSE 'High Bonus' END
FROM Employee WHERE Emp_Expertiese > 3 GROUP BY Emp_Name

C. SELECT Emp_Name, SUM(Emp_Bonus), CASE WHEN SUM(Emp_Bonus) > 1000 THEN 'Low
Bonus' WHEN SUM(Emp_Bonus) >= 2000 THEN 'Medium Bonus' ELSE 'High Bonus' END
FROM Employee WHERE Emp_Expertiese > 3 GROUP BY Emp_Name

D. SELECT Emp_Name, SUM(Emp_Bonus), CASE WHEN SUM(Emp_Bonus) >= 1000 THEN


'Low Bonus' WHEN SUM(Emp_Bonus) > 2000 THEN 'Medium Bonus' ELSE 'High Bonus' END
FROM Employee WHERE Emp_Expertiese > 3 GROUP BY Emp_Name

Q 29. Identify the patients who have been treated by doctors from the same city and specialization
as the patient, and show the names of the doctors.

A. SELECT P.P_Name, D.Dr_Name FROM Patient P INNER JOIN Treatment T ON P.P_id =


T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_City <> D.Dr_City AND
P.P_Specialization <> D.Dr_Specialization GROUP BY P.P_Name, D.Dr_Name;

B. SELECT P.P_Name, D.Dr_Name FROM Patient P INNER JOIN Treatment T ON P.P_id =


T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_City = D.Dr_City AND
P.P_Specialization <> D.Dr_Specialization GROUP BY P.P_Name, D.Dr_Name;

C. SELECT P.P_Name, D.Dr_Name FROM Patient P INNER JOIN Treatment T ON P.P_id =


T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_City = D.Dr_City AND
P.P_Specialization = D.Dr_Specialization GROUP BY P.P_Name, D.Dr_Name;

D. SELECT P.P_Name, D.Dr_Name FROM Patient P INNER JOIN Treatment T ON P.P_id =


T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_City <> D.Dr_City AND
P.P_Specialization = D.Dr_Specialization GROUP BY P.P_Name, D.Dr_Name;

Q 30. List the employees who have not been assigned to any projects yet.
A. SELECT Emp_Name FROM Employee WHERE Emp_ID IS NULL

B. SELECT Emp_Name FROM Employee WHERE Emp_ID NOT IN (SELECT Emp_ID FROM
Work)

C. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work)

D. SELECT Emp_Name FROM Employee WHERE Emp_ID = NULL

Q 31. List the doctors who have treated patients from 'New York City' and have performed more than
3 different tests.

A. SELECT DISTINCT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id =


T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id
WHERE P.P_City = 'New York City' HAVING COUNT(DISTINCT TS.Test_Name) <= 3;

B. SELECT DISTINCT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id =


T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id
WHERE P.P_City = 'New York City' GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(DISTINCT
TS.Test_Name) <= 3;

C. SELECT DISTINCT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id =


T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id
WHERE P.P_City = 'New York City' HAVING COUNT(DISTINCT TS.Test_Name) > 3;

D. SELECT DISTINCT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id =


T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id
WHERE P.P_City = 'New York City' GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(DISTINCT
TS.Test_Name) > 3;

Q 32. Retrieve the names of patients who have not had any tests and are treated by doctors with less
than 5 years of experience.

A. SELECT P.P_Name FROM Patient P WHERE P.P_id NOT IN (SELECT T.P_id FROM Test T)
AND P.P_id NOT IN (SELECT D.P_id FROM Doctor D WHERE D.Dr_Experience < 5);

B. SELECT P.P_Name FROM Patient P WHERE P.P_id IN (SELECT T.P_id FROM Test T) AND
P.P_id NOT IN (SELECT D.P_id FROM Doctor D WHERE D.Dr_Experience < 5);

C. SELECT P.P_Name FROM Patient P WHERE P.P_id IN (SELECT T.P_id FROM Test T) AND
P.P_id IN (SELECT D.P_id FROM Doctor D WHERE D.Dr_Experience < 5);

D. SELECT P.P_Name FROM Patient P WHERE P.P_id NOT IN (SELECT T.P_id FROM Test T)
AND P.P_id IN (SELECT D.P_id FROM Doctor D WHERE D.Dr_Experience < 5);
Q 33. Find the employees who have the same designation as their project category.

A. SELECT Emp_Name FROM Employee WHERE Emp_Desigination = (SELECT


Project_Categoery FROM Project WHERE Project_ID = Work.Project_ID) AND Emp_ID =
Work.Emp_ID

B. SELECT Emp_Name FROM Employee WHERE Emp_Desigination = (SELECT


Project_Categoery FROM Project WHERE Project_ID = Work.Project_ID) AND Emp_ID =
(SELECT Emp_ID FROM Work WHERE Emp_Desigination = Project_Categoery)

C. SELECT Emp_Name FROM Employee WHERE Emp_Desigination = (SELECT


Project_Categoery FROM Project WHERE Project_ID = Work.Project_ID)

D. SELECT Emp_Name FROM Employee WHERE Emp_Desigination = (SELECT


Project_Categoery FROM Project WHERE Project_ID = Work.Project_ID) AND Emp_ID =
(SELECT Emp_ID FROM Work WHERE Emp_Desigination = Project_Categoery)

Q 34. Find the total number of patients admitted by each doctor, but only if the doctor has treated
more than 10 patients.

A. SELECT D.Dr_Name, COUNT(T.P_id) AS Total_Patients FROM Doctor D LEFT JOIN


Treatment T ON D.Dr_id = T.Dr_id GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(T.P_id) >=
10;

B. SELECT D.Dr_Name, COUNT(T.P_id) AS Total_Patients FROM Doctor D LEFT JOIN


Treatment T ON D.Dr_id = T.Dr_id GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(T.P_id) <=
10;

C. SELECT D.Dr_Name, COUNT(T.P_id) AS Total_Patients FROM Doctor D LEFT JOIN


Treatment T ON D.Dr_id = T.Dr_id GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(T.P_id) >
10;

D. SELECT D.Dr_Name, COUNT(T.P_id) AS Total_Patients FROM Doctor D LEFT JOIN


Treatment T ON D.Dr_id = T.Dr_id GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(T.P_id) <
10;

Q 35. Find the patients who have been treated by doctors from the 'Bay Area' and have had both 'X-
ray' and 'MRI' tests.
A. SELECT P.P_Name, P.P_id FROM Patient P INNER JOIN Treatment T ON P.P_id = T.P_id
INNER JOIN Doctor D ON T.Dr_id = D.Dr_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE
P.P_City = 'Bay Area' AND TS.Test_Name IN ('X-ray', 'MRI') GROUP BY P.P_id, P.P_Name
HAVING COUNT(DISTINCT TS.Test_Name) = 2;

B. SELECT P.P_Name, P.P_id FROM Patient P INNER JOIN Treatment T ON P.P_id = T.P_id
INNER JOIN Doctor D ON T.Dr_id = D.Dr_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE
P.P_City = 'Bay Area' AND TS.Test_Name IN ('X-ray', 'CT Scan') GROUP BY P.P_id, P.P_Name
HAVING COUNT(DISTINCT TS.Test_Name) = 2;

C. SELECT P.P_Name, P.P_id FROM Patient P INNER JOIN Treatment T ON P.P_id = T.P_id
INNER JOIN Doctor D ON T.Dr_id = D.Dr_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE
P.P_City = 'New York City' AND TS.Test_Name IN ('X-ray', 'MRI') GROUP BY P.P_id, P.P_Name
HAVING COUNT(DISTINCT TS.Test_Name) = 2;

D. SELECT P.P_Name, P.P_id FROM Patient P INNER JOIN Treatment T ON P.P_id = T.P_id
INNER JOIN Doctor D ON T.Dr_id = D.Dr_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE
P.P_City = 'Bay Area' AND TS.Test_Name IN ('X-ray', 'MRI') GROUP BY P.P_id, P.P_Name
HAVING COUNT(DISTINCT TS.Test_Name) = 1;

Q 36. Calculate the total cost of treatment for patients who have been admitted more than once and
are treated by doctors specializing in 'Surgery.'

A. SELECT T.P_id, SUM(Treatment_Cost) AS Total_Cost FROM Treatment T INNER JOIN


Doctor D ON T.Dr_id = D.Dr_id WHERE D.Dr_specialization = 'Oncology' AND T.P_id IN
(SELECT P_id FROM Treatment GROUP BY P_id HAVING COUNT(Treatment_id) <= 1) GROUP
BY T.P_id;

B. SELECT T.P_id, SUM(Treatment_Cost) AS Total_Cost FROM Treatment T INNER JOIN


Doctor D ON T.Dr_id = D.Dr_id WHERE D.Dr_specialization = 'Surgery' AND T.P_id IN (SELECT
P_id FROM Treatment GROUP BY P_id HAVING COUNT(Treatment_id) <= 1) GROUP BY T.P_id;

C. SELECT T.P_id, SUM(Treatment_Cost) AS Total_Cost FROM Treatment T INNER JOIN


Doctor D ON T.Dr_id = D.Dr_id WHERE D.Dr_specialization = 'Surgery' AND T.P_id IN (SELECT
P_id FROM Treatment GROUP BY P_id HAVING COUNT(Treatment_id) > 1) GROUP BY T.P_id;

D. SELECT T.P_id, SUM(Treatment_Cost) AS Total_Cost FROM Treatment T INNER JOIN


Doctor D ON T.Dr_id = D.Dr_id WHERE D.Dr_specialization = 'Oncology' AND T.P_id IN
(SELECT P_id FROM Treatment GROUP BY P_id HAVING COUNT(Treatment_id) > 1) GROUP BY
T.P_id;
Q 37. Find the doctors who have not treated patients with 'Diabetes' and specialize in 'Cardiology' or
'Endocrinology.'

A. SELECT D.Dr_Name, D.Dr_id FROM Doctor D WHERE D.Dr_specialization IN ('Cardiology',


'Endocrinology') AND D.Dr_id IN (SELECT DISTINCT T.Dr_id FROM Treatment T INNER JOIN
Patient P ON T.P_id = P.P_id WHERE P.P_Disease = 'Diabetes');

B. SELECT D.Dr_Name, D.Dr_id FROM Doctor D WHERE D.Dr_specialization IN ('Cardiology',


'Endocrinology') AND D.Dr_id NOT IN (SELECT DISTINCT T.Dr_id FROM Treatment T INNER
JOIN Patient P ON T.P_id = P.P_id WHERE P.P_Disease = 'Diabetes');

C. SELECT D.Dr_Name, D.Dr_id FROM Doctor D WHERE D.Dr_specialization IN ('Oncology',


'Surgery') AND D.Dr_id NOT IN (SELECT DISTINCT T.Dr_id FROM Treatment T INNER JOIN
Patient P ON T.P_id = P.P_id WHERE P.P_Disease = 'Diabetes');

D. SELECT D.Dr_Name, D.Dr_id FROM Doctor D WHERE D.Dr_specialization IN ('Oncology',


'Surgery') AND D.Dr_id IN (SELECT DISTINCT T.Dr_id FROM Treatment T INNER JOIN Patient P
ON T.P_id = P.P_id WHERE P.P_Disease = 'Diabetes');

Q 38. Retrieve the projects with the highest number of employees working on them.

A. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_id FROM


Work GROUP BY Project_id ORDER BY COUNT(Emp_ID) DESC LIMIT 1)

B. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_id FROM


Work GROUP BY Project_id HAVING COUNT(Emp_ID) = SUM(COUNT(Emp_ID)))

C. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_id FROM


Work GROUP BY Project_id HAVING COUNT(Emp_ID) = MIN(COUNT(Emp_ID)))

D. SELECT Project_Name FROM Project WHERE Project_ID IN (SELECT Project_id FROM


Work GROUP BY Project_id HAVING COUNT(Emp_ID) = MAX(COUNT(Emp_ID)))

Q 39. List the employees who are working on projects with a specific technology, e.g., 'SQL Server.'

A. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Technology = 'SQL Server')

B. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Technology LIKE '%SQL Server%')

C. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Technology IN ('SQL Server', 'SQL'))
D. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Technology = 'MySQL')

Q 40. Retrieve the employee names who are working on projects that are not in the 'Research'
category.

A. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id IN (SELECT Project_ID FROM Project WHERE Project_Categoery =
'Development'))

B. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id IN (SELECT Project_ID FROM Project WHERE Project_Categoery <>
'Research'))

C. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id IN (SELECT Project_ID FROM Project WHERE Project_Categoery =
'Development'))

D. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id NOT IN (SELECT Project_ID FROM Project WHERE Project_Categoery =
'Research'))

Q 41. List the doctors who have not treated patients from 'Los Angeles' and have performed more
than 5 tests in total.

A. SELECT D.Dr_Name FROM Doctor D LEFT JOIN Treatment T ON D.Dr_id = T.Dr_id LEFT
JOIN Patient P ON T.P_id = P.P_id LEFT JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_City = 'Los
Angeles' GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(DISTINCT TS.Test_id) <= 5;

B. SELECT D.Dr_Name FROM Doctor D LEFT JOIN Treatment T ON D.Dr_id = T.Dr_id LEFT
JOIN Patient P ON T.P_id = P.P_id LEFT JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_City <>
'Los Angeles' OR P.P_id IS NULL GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(DISTINCT
TS.Test_id) > 5;

C. SELECT D.Dr_Name FROM Doctor D LEFT JOIN Treatment T ON D.Dr_id = T.Dr_id LEFT
JOIN Patient P ON T.P_id = P.P_id LEFT JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_City = 'Los
Angeles' GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(DISTINCT TS.Test_id) > 5;

D. SELECT D.Dr_Name FROM Doctor D LEFT JOIN Treatment T ON D.Dr_id = T.Dr_id LEFT
JOIN Patient P ON T.P_id = P.P_id LEFT JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_City <>
'Los Angeles' OR P.P_id IS NULL GROUP BY D.Dr_id, D.Dr_Name HAVING COUNT(DISTINCT
TS.Test_id) <= 5;
Q 42. Find the projects where the total budget exceeds $100,000, and categorize them as 'High
Budget.' If the budget is between $50,000 and $100,000, categorize them as 'Medium Budget,' and
below $50,000 as 'Low Budget.'

A. SELECT Project_Name, CASE WHEN Project_Budget >= 50000 AND Project_Budget <=
100000 THEN 'Low Budget' WHEN Project_Budget > 100000 THEN 'High Budget' ELSE
'Medium Budget' END FROM Project

B. SELECT Project_Name, CASE WHEN Project_Budget >= 50000 AND Project_Budget <=
100000 THEN 'High Budget' WHEN Project_Budget > 100000 THEN 'Medium Budget' ELSE
'Low Budget' END FROM Project

C. SELECT Project_Name, CASE WHEN Project_Budget > 100000 THEN 'High Budget' WHEN
Project_Budget >= 50000 AND Project_Budget <= 100000 THEN 'Medium Budget' ELSE 'Low
Budget' END FROM Project

D. SELECT Project_Name, CASE WHEN Project_Budget >= 50000 AND Project_Budget <=
100000 THEN 'Medium Budget' WHEN Project_Budget > 100000 THEN 'High Budget' ELSE
'Low Budget' END FROM Project

Q 43. List the patients who have had multiple treatments and show the names of their treating
doctors for each treatment.

A. SELECT P.P_Name, T.P_id, D.Dr_Name, T.Dr_id FROM Patient P INNER JOIN Treatment T
ON P.P_id = T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE T.P_id IN (SELECT T.P_id
FROM Treatment T GROUP BY T.P_id HAVING COUNT(Treatment_id) > 1);

B. SELECT P.P_Name, T.P_id, D.Dr_Name, T.Dr_id FROM Patient P INNER JOIN Treatment T
ON P.P_id = T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE T.P_id IN (SELECT T.P_id
FROM Treatment T GROUP BY T.P_id HAVING COUNT(Treatment_id) >= 2);

C. SELECT P.P_Name, T.P_id, D.Dr_Name, T.Dr_id FROM Patient P INNER JOIN Treatment T
ON P.P_id = T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE T.P_id IN (SELECT T.P_id
FROM Treatment T GROUP BY T.P_id HAVING COUNT(Treatment_id) <= 1);

D. SELECT P.P_Name, T.P_id, D.Dr_Name, T.Dr_id FROM Patient P INNER JOIN Treatment T
ON P.P_id = T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE T.P_id IN (SELECT T.P_id
FROM Treatment T GROUP BY T.P_id HAVING COUNT(Treatment_id) < 2);
Q 44. Retrieve a list of employees with their project details (Emp_Name, Project_Name).

A. SELECT Emp_Name, Project_Name FROM Employee RIGHT JOIN Work ON


Employee.Emp_ID = Work.Emp_ID RIGHT JOIN Project ON Work.Project_ID =
Project.Project_ID

B. SELECT Emp_Name, Project_Name FROM Employee INNER JOIN Work ON


Employee.Emp_ID = Work.Emp_ID INNER JOIN Project ON Work.Project_ID =
Project.Project_ID

C. SELECT Emp_Name, Project_Name FROM Employee LEFT JOIN Work ON


Employee.Emp_ID = Work.Emp_ID LEFT JOIN Project ON Work.Project_ID =
Project.Project_ID

D. SELECT Emp_Name, Project_Name FROM Employee CROSS JOIN Work CROSS JOIN
Project

Q 45. Retrieve the names of employees who have more than 5 years of experience.

A. SELECT Emp_Name FROM Employee WHERE Emp_Expertiese = 5

B. SELECT Emp_Name FROM Employee WHERE Emp_Expertiese < 5

C. SELECT Emp_Name FROM Employee WHERE Emp_Expertiese > 5

D. SELECT Emp_Name FROM Employee WHERE Emp_Expertiese >= 5

Q 46. Calculate the total salary of each employee, including a bonus of $500 for employees with the
designation 'Manager' and $200 for employees with the designation 'Senior Developer.'

A. SELECT Emp_Name, Emp_Salary + CASE WHEN Emp_Desigination = 'Manager' THEN 500


WHEN Emp_Desigination = 'Senior Developer' THEN 200 ELSE 0 END FROM Employee

B. SELECT Emp_Name, Emp_Salary + CASE WHEN Emp_Desigination = 'Senior Developer'


THEN 200 WHEN Emp_Desigination = 'Manager' THEN 500 ELSE 0 END FROM Employee

C. SELECT Emp_Name, Emp_Salary + CASE WHEN Emp_Desigination = 'Manager' THEN 200


WHEN Emp_Desigination = 'Senior Developer' THEN 500 ELSE 0 END FROM Employee

D. SELECT Emp_Name, Emp_Salary + CASE WHEN Emp_Desigination = 'Senior Developer'


THEN 500 WHEN Emp_Desigination = 'Manager' THEN 200 ELSE 0 END FROM Employee
Q 47. Retrieve the projects with their respective statuses, but if a project started before 2022,
categorize it as 'Old Project,' otherwise as 'Recent Project.'

A. SELECT Project_Name, CASE WHEN Project_Start_Date < '2022-01-01' THEN 'Old Project'
ELSE 'Recent Project' END FROM Project

B. SELECT Project_Name, CASE WHEN Project_Start_Date < '2022-01-01' THEN 'Recent


Project' ELSE 'Old Project' END FROM Project

C. SELECT Project_Name, CASE WHEN Project_Start_Date > '2022-01-01' THEN 'Old Project'
ELSE 'Recent Project' END FROM Project

D. SELECT Project_Name, CASE WHEN Project_Start_Date > '2022-01-01' THEN 'Recent


Project' ELSE 'Old Project' END FROM Project

Q 48. List the employees who are assigned to projects with the word 'Database' in their project
name.

A. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id IN (SELECT Project_ID FROM Project WHERE Project_Name LIKE
'%Database%'))

B. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id = (SELECT Project_ID FROM Project WHERE Project_Name LIKE
'Database'))

C. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id = (SELECT Project_ID FROM Project WHERE Project_Name = 'Database'))

D. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id = (SELECT Project_ID FROM Project WHERE Project_Name IN ('Database',
'Data Storage')))

Q 49. Calculate the average treatment cost for patients who have been admitted more than once and
are treated by doctors specializing in 'Cardiology.'

A. SELECT AVG(Treatment_Cost) AS Avg_Treatment_Cost FROM Treatment T INNER JOIN


Patient P ON T.P_id = P.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_id IN
(SELECT P_id FROM Treatment GROUP BY P_id HAVING COUNT(Treatment_id) > 1) AND
D.Dr_Specialization = 'Cardiology';
B. SELECT AVG(Treatment_Cost) AS Avg_Treatment_Cost FROM Treatment T INNER JOIN
Patient P ON T.P_id = P.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_id IN
(SELECT P_id FROM Treatment GROUP BY P_id HAVING COUNT(Treatment_id) <= 1) AND
D.Dr_Specialization <> 'Cardiology';

C. SELECT AVG(Treatment_Cost) AS Avg_Treatment_Cost FROM Treatment T INNER JOIN


Patient P ON T.P_id = P.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_id IN
(SELECT P_id FROM Treatment GROUP BY P_id HAVING COUNT(Treatment_id) <= 1) AND
D.Dr_Specialization = 'Cardiology';

D. SELECT AVG(Treatment_Cost) AS Avg_Treatment_Cost FROM Treatment T INNER JOIN


Patient P ON T.P_id = P.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_id IN
(SELECT P_id FROM Treatment GROUP BY P_id HAVING COUNT(Treatment_id) > 1) AND
D.Dr_Specialization <> 'Cardiology';

Q 50. Retrieve the names of doctors who have treated patients from the 'Bay Area' and have
performed at least one 'MRI' test.

A. SELECT DISTINCT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id =


T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id
WHERE P.P_City = 'New York City' AND TS.Test_Name = 'CT Scan';

B. SELECT DISTINCT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id =


T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id
WHERE P.P_City = 'Bay Area' AND TS.Test_Name = 'MRI';

C. SELECT DISTINCT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id =


T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id
WHERE P.P_City = 'New York City' AND TS.Test_Name = 'MRI';

D. SELECT DISTINCT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id =


T.Dr_id INNER JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id
WHERE P.P_City = 'Bay Area' AND TS.Test_Name = 'CT Scan';

Q 51. Calculate the average treatment duration for patients admitted by doctors specializing in
'Oncology' and who have had more than one treatment.

A. SELECT AVG(Days) AS Avg_Duration FROM (SELECT P_id, D.Dr_id, DATEDIFF(Admit_Date,


MIN(Admit_Date)) AS Days FROM Treatment T INNER JOIN Doctor D ON T.Dr_id = D.Dr_id
WHERE D.Dr_specialization = 'Oncology' GROUP BY T.P_id, D.Dr_id HAVING
COUNT(Treatment_id) > 1) AS Subquery;
B. SELECT AVG(Days) AS Avg_Duration FROM (SELECT P_id, D.Dr_id, DATEDIFF(Admit_Date,
MIN(Admit_Date)) AS Days FROM Treatment T INNER JOIN Doctor D ON T.Dr_id = D.Dr_id
WHERE D.Dr_specialization = 'Cardiology' GROUP BY T.P_id, D.Dr_id HAVING
COUNT(Treatment_id) > 1) AS Subquery;

C. SELECT AVG(Days) AS Avg_Duration FROM (SELECT P_id, D.Dr_id, DATEDIFF(Admit_Date,


MIN(Admit_Date)) AS Days FROM Treatment T INNER JOIN Doctor D ON T.Dr_id = D.Dr_id
WHERE D.Dr_specialization = 'Cardiology' GROUP BY T.P_id, D.Dr_id HAVING
COUNT(Treatment_id) <= 1) AS Subquery;

D. SELECT AVG(Days) AS Avg_Duration FROM (SELECT P_id, D.Dr_id, DATEDIFF(Admit_Date,


MIN(Admit_Date)) AS Days FROM Treatment T INNER JOIN Doctor D ON T.Dr_id = D.Dr_id
WHERE D.Dr_specialization = 'Oncology' GROUP BY T.P_id, D.Dr_id HAVING
COUNT(Treatment_id) <= 1) AS Subquery;

Q 52. Identify the patients with the highest number of admissions, and show the details of their
treating doctors.

A. SELECT P.P_Name, P.P_id, D.Dr_Name, D.Dr_id FROM Patient P INNER JOIN (SELECT
T.P_id, T.Dr_id, COUNT(Treatment_id) AS Admissions FROM Treatment T GROUP BY T.P_id,
T.Dr_id HAVING Admissions = (SELECT MAX(Admissions) FROM (SELECT P_id, Dr_id,
COUNT(Treatment_id) AS Admissions FROM Treatment T GROUP BY P_id, Dr_id) AS
Subquery)) AS Subquery ON P.P_id = Subquery.P_id INNER JOIN Doctor D ON Subquery.Dr_id
= D.Dr_id;

B. SELECT P.P_Name, P.P_id, D.Dr_Name, D.Dr_id FROM Patient P INNER JOIN (SELECT
T.P_id, T.Dr_id, COUNT(Treatment_id) AS Admissions FROM Treatment T GROUP BY T.P_id,
T.Dr_id HAVING Admissions = (SELECT MIN(Admissions) FROM (SELECT P_id, Dr_id,
COUNT(Treatment_id) AS Admissions FROM Treatment T GROUP BY P_id, Dr_id) AS
Subquery)) AS Subquery ON P.P_id = Subquery.P_id INNER JOIN Doctor D ON Subquery.Dr_id
= D.Dr_id;

C. SELECT P.P_Name, P.P_id, D.Dr_Name, D.Dr_id FROM Patient P INNER JOIN (SELECT
T.P_id, T.Dr_id, COUNT(Treatment_id) AS Admissions FROM Treatment T GROUP BY T.P_id,
T.Dr_id HAVING Admissions = (SELECT MAX(Admissions) FROM (SELECT P_id, Dr_id,
COUNT(Treatment_id) AS Admissions FROM Treatment T GROUP BY P_id, Dr_id) AS
Subquery)) AS Subquery ON P.P_id = Subquery.P_id INNER JOIN Doctor D ON Subquery.Dr_id
= D.Dr_id;

D. SELECT P.P_Name, P.P_id, D.Dr_Name, D.Dr_id FROM Patient P INNER JOIN (SELECT
T.P_id, T.Dr_id, COUNT(Treatment_id) AS Admissions FROM Treatment T GROUP BY T.P_id,
T.Dr_id HAVING Admissions = (SELECT AVG(Admissions) FROM (SELECT P_id, Dr_id,
COUNT(Treatment_id) AS Admissions FROM Treatment T GROUP BY P_id, Dr_id) AS
Subquery)) AS Subquery ON P.P_id = Subquery.P_id INNER JOIN Doctor D ON Subquery.Dr_id
= D.Dr_id;
Q 53. Calculate the average number of tests performed on patients who are allergic to 'Peanuts' and
are treated by doctors with a specialization of 'Allergy.'

A. SELECT AVG(Num_Tests) AS Avg_Tests FROM (SELECT P.P_id, COUNT(TS.Test_Name) AS


Num_Tests FROM Patient P INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN Doctor D
ON T.Dr_id = D.Dr_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_Allergies LIKE
'%Peanuts%' AND D.Dr_specialization = 'Orthopedics' GROUP BY P.P_id) AS Subquery;

B. SELECT AVG(Num_Tests) AS Avg_Tests FROM (SELECT P.P_id, COUNT(TS.Test_Name) AS


Num_Tests FROM Patient P INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN Doctor D
ON T.Dr_id = D.Dr_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_Allergies LIKE
'%Peanuts%' AND D.Dr_specialization = 'Pediatrics' GROUP BY P.P_id) AS Subquery;

C. SELECT AVG(Num_Tests) AS Avg_Tests FROM (SELECT P.P_id, COUNT(TS.Test_Name) AS


Num_Tests FROM Patient P INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN Doctor D
ON T.Dr_id = D.Dr_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_Allergies LIKE
'%Peanuts%' AND D.Dr_specialization = 'Cardiology' GROUP BY P.P_id) AS Subquery;

D. SELECT AVG(Num_Tests) AS Avg_Tests FROM (SELECT P.P_id, COUNT(TS.Test_Name) AS


Num_Tests FROM Patient P INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN Doctor D
ON T.Dr_id = D.Dr_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_Allergies LIKE
'%Peanuts%' AND D.Dr_specialization = 'Allergy' GROUP BY P.P_id) AS Subquery;

Q 54. Find the projects where the project category is 'Development.'

A. SELECT Project_Name FROM Project WHERE Project_Categoery IN ('Development',


'Software')

B. SELECT Project_Name FROM Project WHERE Project_Categoery = 'Research'

C. SELECT Project_Name FROM Project WHERE Project_Categoery LIKE 'Develop%'

D. SELECT Project_Name FROM Project WHERE Project_Categoery = 'Development'

Q 55. Calculate the average project cost, but if a project cost is over $50,000, categorize it as
'Expensive,' between $20,000 and $50,000 as 'Moderate,' and below $20,000 as 'Inexpensive.'

A. SELECT AVG(Project_Cost), CASE WHEN AVG(Project_Cost) > 50000 THEN 'Expensive'


WHEN AVG(Project_Cost) >= 20000 THEN 'Moderate' ELSE 'Inexpensive' END FROM Project
B. SELECT AVG(Project_Cost), CASE WHEN AVG(Project_Cost) > 50000 THEN 'Inexpensive'
WHEN AVG(Project_Cost) >= 20000 THEN 'Moderate' ELSE 'Expensive' END FROM Project

C. SELECT AVG(Project_Cost), CASE WHEN AVG(Project_Cost) > 50000 THEN 'Moderate'


WHEN AVG(Project_Cost) >= 20000 THEN 'Expensive' ELSE 'Inexpensive' END FROM Project

D. SELECT AVG(Project_Cost), CASE WHEN AVG(Project_Cost) > 50000 THEN 'Moderate'


WHEN AVG(Project_Cost) >= 20000 THEN 'Inexpensive' ELSE 'Expensive' END FROM Project

Q 56. Find the projects and their categories along with the employee assigned to each project.

A. SELECT Project_Name, Project_Categoery, Emp_Name FROM Project CROSS JOIN Work


CROSS JOIN Employee

B. SELECT Project_Name, Project_Categoery, Emp_Name FROM Project RIGHT JOIN Work


ON Project.Project_ID = Work.Project_ID RIGHT JOIN Employee ON Work.Emp_ID =
Employee.Emp_ID

C. SELECT Project_Name, Project_Categoery, Emp_Name FROM Project INNER JOIN Work


ON Project.Project_ID = Work.Project_ID INNER JOIN Employee ON Work.Emp_ID =
Employee.Emp_ID

D. SELECT Project_Name, Project_Categoery, Emp_Name FROM Project LEFT JOIN Work ON


Project.Project_ID = Work.Project_ID LEFT JOIN Employee ON Work.Emp_ID =
Employee.Emp_ID

Q 57. Retrieve the names of patients who have had more than 5 different tests and are treated by
doctors with more than 15 years of experience.

A. SELECT P.P_Name FROM Patient P INNER JOIN (SELECT P_id, COUNT(DISTINCT


Test_Name) AS Num_Tests FROM Test GROUP BY P_id HAVING Num_Tests > 5) AS Subquery
ON P.P_id = Subquery.P_id INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN Doctor D
ON T.Dr_id = D.Dr_id WHERE D.Dr_Experience <= 15;

B. SELECT P.P_Name FROM Patient P INNER JOIN (SELECT P_id, COUNT(DISTINCT


Test_Name) AS Num_Tests FROM Test GROUP BY P_id HAVING Num_Tests <= 5) AS Subquery
ON P.P_id = Subquery.P_id INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN Doctor D
ON T.Dr_id = D.Dr_id WHERE D.Dr_Experience > 15;

C. SELECT P.P_Name FROM Patient P INNER JOIN (SELECT P_id, COUNT(DISTINCT


Test_Name) AS Num_Tests FROM Test GROUP BY P_id HAVING Num_Tests > 5) AS Subquery
ON P.P_id = Subquery.P_id INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN Doctor D
ON T.Dr_id = D.Dr_id WHERE D.Dr_Experience > 15;
D. SELECT P.P_Name FROM Patient P INNER JOIN (SELECT P_id, COUNT(DISTINCT
Test_Name) AS Num_Tests FROM Test GROUP BY P_id HAVING Num_Tests <= 5) AS Subquery
ON P.P_id = Subquery.P_id INNER JOIN Treatment T ON P.P_id = T.P_id INNER JOIN Doctor D
ON T.Dr_id = D.Dr_id WHERE D.Dr_Experience <= 15;

Q 58. List the employees who have worked on projects with 'Database' in the project name and are
designated as 'Developer.'

A. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id IN (SELECT Project_ID FROM Project WHERE Project_Name LIKE
'%Database%')) AND Emp_Desigination = 'Developer'

B. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id IN (SELECT Project_ID FROM Project WHERE Project_Name LIKE
'%Database%') AND Emp_Desigination = 'Developer')

C. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id IN (SELECT Project_ID FROM Project WHERE Project_Name = 'Database')
AND Emp_Desigination = 'Developer')

D. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
WHERE Project_id IN (SELECT Project_ID FROM Project WHERE Project_Name = 'Database'))
AND Emp_Desigination = 'Developer'

Q 59. List all employees who have worked on projects with a total duration of more than 180 days
and have designations of 'Manager' or 'Senior Developer.'

A. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
GROUP BY Emp_ID HAVING SUM(Project_Duration) > 180) AND (Emp_Desigination = 'Junior
Developer' OR Emp_Desigination = 'Manager')

B. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
GROUP BY Emp_ID HAVING SUM(Project_Duration) > 180) AND (Emp_Desigination = 'Senior
Developer' OR Emp_Desigination = 'Junior Developer')

C. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
GROUP BY Emp_ID HAVING SUM(Project_Duration) > 180) AND (Emp_Desigination = 'Senior
Developer' OR Emp_Desigination = 'Manager')

D. SELECT Emp_Name FROM Employee WHERE Emp_ID IN (SELECT Emp_ID FROM Work
GROUP BY Emp_ID HAVING SUM(Project_Duration) > 180) AND (Emp_Desigination =
'Manager' OR Emp_Desigination = 'Junior Developer')
Q 60. Find the employees who have the same expertise as another employee with Emp_ID 101.

A. SELECT Emp_Name FROM Employee WHERE Emp_Expertiese IN (SELECT DISTINCT


Emp_Expertiese FROM Employee WHERE Emp_ID = 101) AND Emp_ID <> 101

B. SELECT Emp_Name FROM Employee WHERE Emp_Expertiese IN (SELECT Emp_Expertiese


FROM Employee WHERE Emp_ID = 101) AND Emp_ID <> 101

C. SELECT Emp_Name FROM Employee WHERE Emp_Expertiese = (SELECT Emp_Expertiese


FROM Employee WHERE Emp_ID = 101) AND Emp_ID <> 101

D. SELECT Emp_Name FROM Employee WHERE Emp_Expertiese = (SELECT DISTINCT


Emp_Expertiese FROM Employee WHERE Emp_ID = 101) AND Emp_ID <> 101

Q 61. Calculate the average years of experience for all employees and categorize them as 'Junior,'
'Intermediate,' or 'Senior.'

A. SELECT AVG(Emp_Expertiese) AS Average_Experience, CASE WHEN AVG(Emp_Expertiese)


< 5 THEN 'Junior' WHEN AVG(Emp_Expertiese) >= 5 AND AVG(Emp_Expertiese) <= 10 THEN
'Intermediate' ELSE 'Senior' END AS Experience_Category FROM Employee

B. SELECT AVG(Emp_Expertiese) AS Average_Experience, CASE WHEN AVG(Emp_Expertiese)


< 5 THEN 'Junior' WHEN AVG(Emp_Expertiese) >= 5 AND AVG(Emp_Expertiese) <= 9 THEN
'Intermediate' ELSE 'Senior' END AS Experience_Category FROM Employee

C. SELECT AVG(Emp_Expertiese) AS Average_Experience, CASE WHEN AVG(Emp_Expertiese)


< 5 THEN 'Junior' WHEN AVG(Emp_Expertiese) >= 5 AND AVG(Emp_Expertiese) <= 15 THEN
'Intermediate' ELSE 'Senior' END AS Experience_Category FROM Employee

D. SELECT AVG(Emp_Expertiese) AS Average_Experience, CASE WHEN AVG(Emp_Expertiese)


< 6 THEN 'Junior' WHEN AVG(Emp_Expertiese) >= 6 AND AVG(Emp_Expertiese) <= 10 THEN
'Intermediate' ELSE 'Senior' END AS Experience_Category FROM Employee

Q 62. List the patients who have had more tests than their age and show the total number of tests
they've undergone.

A. SELECT P.P_Name, COUNT(T.Test_id) AS Total_Tests FROM Patient P INNER JOIN Test T ON


P.P_id = T.P_id WHERE COUNT(T.Test_id) >= YEAR(CURRENT_DATE) - YEAR(P.P_Birthdate)
GROUP BY P.P_Name;
B. SELECT P.P_Name, COUNT(T.Test_id) AS Total_Tests FROM Patient P INNER JOIN Test T ON
P.P_id = T.P_id WHERE COUNT(T.Test_id) <= YEAR(CURRENT_DATE) - YEAR(P.P_Birthdate)
GROUP BY P.P_Name;

C. SELECT P.P_Name, COUNT(T.Test_id) AS Total_Tests FROM Patient P INNER JOIN Test T ON


P.P_id = T.P_id WHERE COUNT(T.Test_id) > YEAR(CURRENT_DATE) - YEAR(P.P_Birthdate)
GROUP BY P.P_Name;

D. SELECT P.P_Name, COUNT(T.Test_id) AS Total_Tests FROM Patient P INNER JOIN Test T ON


P.P_id = T.P_id WHERE COUNT(T.Test_id) = YEAR(CURRENT_DATE) - YEAR(P.P_Birthdate)
GROUP BY P.P_Name;

Q 63. Find the doctors who have treated patients with 'Hypertension' and have performed more 'CT
Scan' tests than 'X-ray' tests.

A. SELECT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER
JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_Disease
= 'Hypertension' AND TS.Test_Name = 'CT Scan' GROUP BY D.Dr_id, D.Dr_Name HAVING
COUNT(TS.Test_id) > (SELECT COUNT(TS.Test_id) FROM Test TS WHERE TS.Test_Name = 'X-
ray');

B. SELECT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER
JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_Disease
= 'Asthma' AND TS.Test_Name = 'CT Scan' GROUP BY D.Dr_id, D.Dr_Name HAVING
COUNT(TS.Test_id) > (SELECT COUNT(TS.Test_id) FROM Test TS WHERE TS.Test_Name = 'X-
ray');

C. SELECT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER
JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_Disease
= 'Hypertension' AND TS.Test_Name = 'X-ray' GROUP BY D.Dr_id, D.Dr_Name HAVING
COUNT(TS.Test_id) > (SELECT COUNT(TS.Test_id) FROM Test TS WHERE TS.Test_Name = 'CT
Scan');

D. SELECT D.Dr_Name FROM Doctor D INNER JOIN Treatment T ON D.Dr_id = T.Dr_id INNER
JOIN Patient P ON T.P_id = P.P_id INNER JOIN Test TS ON P.P_id = TS.P_id WHERE P.P_Disease
= 'Asthma' AND TS.Test_Name = 'X-ray' GROUP BY D.Dr_id, D.Dr_Name HAVING
COUNT(TS.Test_id) > (SELECT COUNT(TS.Test_id) FROM Test TS WHERE TS.Test_Name = 'CT
Scan');

Q 64. Calculate the total treatment cost for patients who have been admitted on or after '2023-01-
01' and have 'Diabetes.'
A. SELECT T.P_id, SUM(Treatment_Cost) AS Total_Cost FROM Treatment T INNER JOIN
Patient P ON T.P_id = P.P_id WHERE P.P_Disease = 'Cancer' AND T.Admit_Date < '2023-01-01'
GROUP BY T.P_id;

B. SELECT T.P_id, SUM(Treatment_Cost) AS Total_Cost FROM Treatment T INNER JOIN


Patient P ON T.P_id = P.P_id WHERE P.P_Disease = 'Diabetes' AND T.Admit_Date < '2023-01-
01' GROUP BY T.P_id;

C. SELECT T.P_id, SUM(Treatment_Cost) AS Total_Cost FROM Treatment T INNER JOIN


Patient P ON T.P_id = P.P_id WHERE P.P_Disease = 'Cancer' AND T.Admit_Date >= '2023-01-
01' GROUP BY T.P_id;

D. SELECT T.P_id, SUM(Treatment_Cost) AS Total_Cost FROM Treatment T INNER JOIN


Patient P ON T.P_id = P.P_id WHERE P.P_Disease = 'Diabetes' AND T.Admit_Date >= '2023-01-
01' GROUP BY T.P_id;

Q 65. Identify employees who have worked on more than 3 projects and have designations of either
'Senior Developer' or 'Manager,' and grant them a performance bonus of $1,000.

A. UPDATE Employee SET Emp_Bonus = 1000 WHERE Emp_ID IN (SELECT Emp_ID FROM
Work GROUP BY Emp_ID HAVING COUNT(Project_ID) > 3) AND (Emp_Desigination = 'Junior
Developer' OR Emp_Desigination = 'Manager')

B. UPDATE Employee SET Emp_Bonus = 1000 WHERE Emp_ID IN (SELECT Emp_ID FROM
Work GROUP BY Emp_ID HAVING COUNT(Project_ID) > 3) AND (Emp_Desigination = 'Senior
Developer' OR Emp_Desigination = 'Junior Developer')

C. UPDATE Employee SET Emp_Bonus = 1000 WHERE Emp_ID IN (SELECT Emp_ID FROM
Work GROUP BY Emp_ID HAVING COUNT(Project_ID) = 3) AND (Emp_Desigination = 'Senior
Developer' OR Emp_Desigination = 'Manager')

D. UPDATE Employee SET Emp_Bonus = 1000 WHERE Emp_ID IN (SELECT Emp_ID FROM
Work GROUP BY Emp_ID HAVING COUNT(Project_ID) > 3) AND (Emp_Desigination = 'Senior
Developer' OR Emp_Desigination = 'Manager')

Q 66. List the patients who have been treated by doctors from 'San Francisco' and have had both
'Blood Test' and 'X-ray' tests.

A. SELECT P.P_Name FROM Patient P WHERE P.P_City = 'San Francisco' AND P.P_id IN
(SELECT P_id FROM Test WHERE Test_Name = 'Blood Test') AND P.P_id IN (SELECT P_id FROM
Test WHERE Test_Name = 'X-ray');
B. SELECT P.P_Name FROM Patient P WHERE P.P_City = 'San Francisco' AND P.P_id NOT IN
(SELECT P_id FROM Test WHERE Test_Name = 'Blood Test') AND P.P_id NOT IN (SELECT P_id
FROM Test WHERE Test_Name = 'X-ray');

C. SELECT P.P_Name FROM Patient P WHERE P.P_City = 'New York City' AND P.P_id IN
(SELECT P_id FROM Test WHERE Test_Name = 'Blood Test') AND P.P_id IN (SELECT P_id FROM
Test WHERE Test_Name = 'X-ray');

D. SELECT P.P_Name FROM Patient P WHERE P.P_City = 'New York City' AND P.P_id NOT IN
(SELECT P_id FROM Test WHERE Test_Name = 'Blood Test') AND P.P_id NOT IN (SELECT P_id
FROM Test WHERE Test_Name = 'X-ray');

Q 67. List the projects and their categories, but if the project category is 'Management,' display it as
'MGT,' 'Development' as 'DEV,' and 'Research' as 'RSR.'

A. SELECT Project_Name, CASE Project_Categoery WHEN 'Management' THEN 'DEV' WHEN


'Development' THEN 'MGT' WHEN 'Research' THEN 'RSR' ELSE Project_Categoery END FROM
Project

B. SELECT Project_Name, CASE Project_Categoery WHEN 'Development' THEN 'DEV' WHEN


'Management' THEN 'RSR' WHEN 'Research' THEN 'MGT' ELSE Project_Categoery END FROM
Project

C. SELECT Project_Name, CASE Project_Categoery WHEN 'Management' THEN 'MGT' WHEN


'Development' THEN 'DEV' WHEN 'Research' THEN 'RSR' ELSE Project_Categoery END FROM
Project

D. SELECT Project_Name, CASE Project_Categoery WHEN 'Development' THEN 'RSR' WHEN


'Management' THEN 'MGT' WHEN 'Research' THEN 'DEV' ELSE Project_Categoery END FROM
Project

Q 68. Calculate the average number of tests performed on patients from 'Los Angeles' who have had
treatments by doctors with more than 10 years of experience.

A. SELECT AVG(COUNT(T.Test_id)) AS Avg_Tests FROM Patient P INNER JOIN Treatment T ON


P.P_id = T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_City = 'New York City'
AND D.Dr_Experience <= 10 GROUP BY P.P_id;

B. SELECT AVG(COUNT(T.Test_id)) AS Avg_Tests FROM Patient P INNER JOIN Treatment T ON


P.P_id = T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_City = 'Los Angeles'
AND D.Dr_Experience > 10 GROUP BY P.P_id;
C. SELECT AVG(COUNT(T.Test_id)) AS Avg_Tests FROM Patient P INNER JOIN Treatment T ON
P.P_id = T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_City = 'New York City'
AND D.Dr_Experience > 10 GROUP BY P.P_id;

D. SELECT AVG(COUNT(T.Test_id)) AS Avg_Tests FROM Patient P INNER JOIN Treatment T ON


P.P_id = T.P_id INNER JOIN Doctor D ON T.Dr_id = D.Dr_id WHERE P.P_City = 'Los Angeles'
AND D.Dr_Experience <= 10 GROUP BY P.P_id;

Q 69. Identify employees who have the highest salary in their respective departments and update
their designations to 'Department Head.'

A. UPDATE Employee SET Emp_Desigination = 'Department Head' WHERE Emp_Salary =


(SELECT MAX(Emp_Salary) FROM Employee)

B. UPDATE Employee SET Emp_Desigination = 'Department Head' WHERE Emp_Salary IN


(SELECT MAX(Emp_Salary) FROM Employee)

C. UPDATE Employee SET Emp_Desigination = 'Department Head' WHERE (Department,


Emp_Salary) IN (SELECT Department, MAX(Emp_Salary) FROM Employee GROUP BY
Department)

D. UPDATE Employee SET Emp_Desigination = 'Department Head' WHERE Emp_Salary IN


(SELECT MAX(Emp_Salary) FROM Employee GROUP BY Department)

Q 70. Update the designation of employees to 'Manager' if they have more than 5 years of
experience, 'Senior Developer' if they have more than 10 years of experience, and 'Junior Developer'
otherwise.

A. UPDATE Employee SET Emp_Desigination = CASE WHEN Emp_Expertiese > 5 THEN


'Manager' WHEN Emp_Expertiese > 10 THEN 'Senior Developer' ELSE 'Junior Developer' END

B. UPDATE Employee SET Emp_Desigination = CASE WHEN Emp_Expertiese > 10 THEN


'Senior Developer' WHEN Emp_Expertiese > 5 THEN 'Manager' ELSE 'Junior Developer' END

C. UPDATE Employee SET Emp_Desigination = CASE WHEN Emp_Expertiese > 5 THEN


'Senior Developer' WHEN Emp_Expertiese > 10 THEN 'Manager' ELSE 'Junior Developer' END

D. UPDATE Employee SET Emp_Desigination = CASE WHEN Emp_Expertiese > 10 THEN


'Manager' WHEN Emp_Expertiese > 5 THEN 'Senior Developer' ELSE 'Junior Developer' END

You might also like