#DEFINE #DOCTOR_NAME 1 #DEFINE #SPECIALITY_NUMBER 1 SELECT V.Patient_Name,V.Visit_Date,V.Doctor_Name,D.Doctor_Specialty FROM ((SELECT V.Patient_Name,V.Visit_Date FROM (SELECT DISTINCT V.Patient_Name,V.Visit_Date,Doctors.Doctor_Specialty ((SELECT V.Patient_Name,V.Visit_Date FROM (SELECT DISTINCT Patient_Name,Visit_Date,Doctor_Name FROM Visits) V GROUP BY Patient_Name,Visit_Date HAVING COUNT(*)>#DOCTOR_NAME) V JOIN Visits ON Visits.Patient_Name = V.Patient_Name AND Visits.Visit_Date = V.Visit_Date) JOIN Doctors ON Doctors.Doctor_Name = Visits.Doctor_Name) V GROUP BY Patient_Name,Visit_Date HAVING COUNT(*)=#SPECIALITY_NUMBER) X INNER JOIN Visits V ON X.Patient_Name=V.Patient_Name AND X.Visit_Date=V.Visit_Date) INNER JOIN Doctors D ON D.Doctor_Name = V.Doctor_Name>==================================================================
> >SELECT V.Patient_Name,V.Visit_Date,V.Doctor_Name,D.Doctor_Specialty >FROM >((SELECT Visits.Patient_Name,Visits.Visit_Date > FROM Doctors inner join Visits on Doctors.Doctor_Name = Visits.Doctor_Name > GROUP BY Visits.Patient_Name,Visits.Visit_Date > HAVING MIN(Visits.Doctor_Name)<>MAX(Visits.Doctor_Name) > AND MIN(Doctors.Doctor_Specialty)=MAX(Doctors.Doctor_Specialty)) X > INNER JOIN Visits V ON X.Patient_Name=V.Patient_Name AND X.Visit_Date=V.Visit_Date) > INNER JOIN Doctors D ON D.Doctor_Name = V.Doctor_Name > >SELECT V.Patient_Name,V.Visit_Date,V.Doctor_Name,D.Doctor_Specialty >FROM >((SELECT Visits.Patient_Name,Visits.Visit_Date > FROM Doctors inner join Visits on Doctors.Doctor_Name = Visits.Doctor_Name > GROUP BY Visits.Patient_Name,Visits.Visit_Date > HAVING MIN(Visits.Doctor_Name)<>MAX(Visits.Doctor_Name) > AND MIN(Doctors.Doctor_Specialty)<>MAX(Doctors.Doctor_Specialty)) X > INNER JOIN Visits V ON X.Patient_Name=V.Patient_Name AND X.Visit_Date=V.Visit_Date) > INNER JOIN Doctors D ON D.Doctor_Name = V.Doctor_Name >>