create table Patients_2022260153 (
PatientID number,
Name varchar(40),
gender varchar(2),
age number,
ContactNumber varchar(11),
primary key(PatientID)
);
create table Doctors_2022260153 (
DoctorID number,
Name varchar(40),
Specialization varchar(40),
ContactNumber varchar(11),
YearsExperience number,
primary key(DoctorID)
);
create table Appointments_2022260153 (
AppointmentID number,
AppointmentDate date,
PatientID number,
DoctorID number,
AppoinmentStatus varchar(11),
check (AppoinmentStatus='completed' or AppoinmentStatus='pending' or AppoinmentStatus='confirmed'),
primary key(AppointmentID),
foreign key (DoctorID) references Doctors,
foreign key (PatientID) references Patients
);
create table Billing_2022260153(
BillID number,
AppointmentID number,
BillAmount number,
BillStatus varchar(10),
primary key(BillID),
foreign key (AppointmentID) references Appointments
);
insert into Doctors_2022260153 values (1101,'Richard','Cardiology','11011101',22);
insert into Doctors_2022260153 values (1102,'Bob','Cardiology','11021102',12);
insert into Doctors_2022260153 values (1103,'Kumar','Oncology','11031103',9);
insert into Doctors_2022260153 values (1104,'Samantha','Medicine','11041104',7);
insert into Doctors_2022260153 values (1105,'Ali','Neurology','11051105',8);
insert into Doctors_2022260153 values (1106,'zeng','Gynecology','11061106',6);
insert into Doctors_2022260153 values (1107,'Luis','Gynecology','11071107',11);
insert into Patients_2022260153 values (5001,'Lucas','M',11,'50015001');
insert into Patients_2022260153 values (5002,'Anthony','M',43,'50025002');
insert into Patients_2022260153 values (5003,'Nick','M',26,'50035003');
insert into Patients_2022260153 values (5004,'Rodri','M',28,'50045004');
insert into Patients_2022260153 values (5005,'Viola','F',38,'50055005');
insert into Patients_2022260153 values (5006,'Annabelle','F',9,'50065006');
insert into Patients_2022260153 values (5007,'Bill','M',61,'50075007');
insert into Patients_2022260153 values (5008,'Taylor','F',19,'50085008');
insert into Patients_2022260153 values (5009,'Trevor','M',39,'50095009');
insert into Appointments_2022260153 values (910,'04-21-2024',5002,1101,'completed');
insert into Appointments_2022260153 values (911,'04-24-2024',5007,1102,'confirmed');
insert into Appointments_2022260153 values (912,'04-24-2024',5005,1103,'pending');
insert into Appointments_2022260153 values (913,'04-19-2024',5006,1104,'confirmed');
insert into Appointments_2022260153 values (914,'04-20-2024',5005,1102,'completed');
insert into Appointments_2022260153 values (915,'04-21-2024',5008,1104,'pending');
insert into Appointments_2022260153 values (916,'04-21-2024',5002,1101,'completed');
insert into Appointments_2022260153 values (917,'04-21-2024',5009,1107,'completed');
insert into Billing_2022260153 values (9910,910,250,'paid');
insert into Billing_2022260153 values (9911,911,200,'unpaid');
insert into Billing_2022260153 values (9912,912,100,'unpaid');
insert into Billing_2022260153 values (9913,913,100,'paid');
insert into Billing_2022260153 values (9914,914,180,'paid');
insert into Billing_2022260153 values (9915,915,120,'unpaid');
insert into Billing_2022260153 values (9916,916,220,'unpaid');
insert into Billing_2022260153 values (9917,917,120,'unpaid');
--a)
select name,contactnumber
from patients_2022260153
where age=(select max(age) from patients_2022260153);
--b)
select name,doctorid,count(appointmentid)
from appointments_2022260153 natural join doctors_2022260153
where specialization='Oncology' and appointmentdate='04-24-2024' group by name,doctorid;
--c)
select p.name,p.contactnumber
from patients_2022260153 p, appointments_2022260153 a, doctors_2022260153 d
where d.doctorid=a.doctorid and p.patientid=a.patientid and specialization='Cardiology'and appointmentdate='04-24-2024';
--d)
select distinct name, contactnumber
from doctors_2022260153 natural join appointments_2022260153
where AppoinmentStatus = 'completed' and appointmentdate between '04-19-2024' and '04-21-2024' order by name;
--e)
select doctorid, name from doctors_2022260153 natural left join appointments_2022260153
minus
select doctorid,name from doctors_2022260153 natural join appointments_2022260153;
--f)
--g)
select name,contactnumber,count(appointmentid)
from patients_2022260153 natural join appointments_2022260153
group by name,contactnumber having count(appointmentid)>=2;
--h)
select specialization,avg(yearsexperience) from doctors_2022260153 group by specialization;
--i)
select doctorid, name, count(appointmentid)
from doctors_2022260153 natural left join appointments_2022260153
where appoinmentstatus='completed' group by doctorid,name;
--j)
update billing_2022260153
set billamount = case
when billamount < 1000 then billamount- (billAmount * 0.15)
when billamount >= 1000 and billamount < 2500 then billamount-(billamount * 0.10)
else billamount -(billamount * 0.05)
end;
--k)
alter table patients_2022260153 add adress varchar(40);
--l)
create view gynecologyappointment as
select p.name as patientname, d.name as doctorname, a.appointmentdate, a.appoinmentstatus
from patients_2022260153 p, appointments_2022260153 a, doctors_2022260153 d
where d.doctorid=a.doctorid and p.patientid=a.patientid
and specialization = 'Gynecology';
select * from gynecologyappointment;
Y3JlYXRlIHRhYmxlIFBhdGllbnRzXzIwMjIyNjAxNTMgKAogICAgUGF0aWVudElEIG51bWJlciwKICAgIE5hbWUgdmFyY2hhcig0MCksCiAgICBnZW5kZXIgdmFyY2hhcigyKSwKICAgIGFnZSBudW1iZXIsCiAgICBDb250YWN0TnVtYmVyIHZhcmNoYXIoMTEpLAogICAgcHJpbWFyeSBrZXkoUGF0aWVudElEKQopOwoKY3JlYXRlIHRhYmxlIERvY3RvcnNfMjAyMjI2MDE1MyAoCiAgICBEb2N0b3JJRCBudW1iZXIsCiAgICBOYW1lIHZhcmNoYXIoNDApLAogICAgU3BlY2lhbGl6YXRpb24gdmFyY2hhcig0MCksCiAgICBDb250YWN0TnVtYmVyIHZhcmNoYXIoMTEpLAogICAgWWVhcnNFeHBlcmllbmNlIG51bWJlciwKICAgIHByaW1hcnkga2V5KERvY3RvcklEKQopOwpjcmVhdGUgdGFibGUgQXBwb2ludG1lbnRzXzIwMjIyNjAxNTMgKAogICAgQXBwb2ludG1lbnRJRCBudW1iZXIsCiAgICBBcHBvaW50bWVudERhdGUgZGF0ZSwKICAgIFBhdGllbnRJRCBudW1iZXIsCiAgICBEb2N0b3JJRCBudW1iZXIsCiAgICBBcHBvaW5tZW50U3RhdHVzIHZhcmNoYXIoMTEpLAogICAgY2hlY2sgKEFwcG9pbm1lbnRTdGF0dXM9J2NvbXBsZXRlZCcgb3IgQXBwb2lubWVudFN0YXR1cz0ncGVuZGluZycgb3IgQXBwb2lubWVudFN0YXR1cz0nY29uZmlybWVkJyksCiAgICBwcmltYXJ5IGtleShBcHBvaW50bWVudElEKSwKICAgIGZvcmVpZ24ga2V5IChEb2N0b3JJRCkgcmVmZXJlbmNlcyBEb2N0b3JzLAogICAgZm9yZWlnbiBrZXkgKFBhdGllbnRJRCkgcmVmZXJlbmNlcyBQYXRpZW50cwopOwpjcmVhdGUgdGFibGUgQmlsbGluZ18yMDIyMjYwMTUzKAogICAgQmlsbElEIG51bWJlciwKICAgIEFwcG9pbnRtZW50SUQgbnVtYmVyLAogICAgQmlsbEFtb3VudCBudW1iZXIsCiAgICBCaWxsU3RhdHVzIHZhcmNoYXIoMTApLAogICAgcHJpbWFyeSBrZXkoQmlsbElEKSwKICAgIGZvcmVpZ24ga2V5IChBcHBvaW50bWVudElEKSByZWZlcmVuY2VzIEFwcG9pbnRtZW50cwopOwoKaW5zZXJ0IGludG8gRG9jdG9yc18yMDIyMjYwMTUzIHZhbHVlcyAoMTEwMSwnUmljaGFyZCcsJ0NhcmRpb2xvZ3knLCcxMTAxMTEwMScsMjIpOwppbnNlcnQgaW50byBEb2N0b3JzXzIwMjIyNjAxNTMgdmFsdWVzICgxMTAyLCdCb2InLCdDYXJkaW9sb2d5JywnMTEwMjExMDInLDEyKTsKaW5zZXJ0IGludG8gRG9jdG9yc18yMDIyMjYwMTUzIHZhbHVlcyAoMTEwMywnS3VtYXInLCdPbmNvbG9neScsJzExMDMxMTAzJyw5KTsKaW5zZXJ0IGludG8gRG9jdG9yc18yMDIyMjYwMTUzIHZhbHVlcyAoMTEwNCwnU2FtYW50aGEnLCdNZWRpY2luZScsJzExMDQxMTA0Jyw3KTsKaW5zZXJ0IGludG8gRG9jdG9yc18yMDIyMjYwMTUzIHZhbHVlcyAoMTEwNSwnQWxpJywnTmV1cm9sb2d5JywnMTEwNTExMDUnLDgpOwppbnNlcnQgaW50byBEb2N0b3JzXzIwMjIyNjAxNTMgdmFsdWVzICgxMTA2LCd6ZW5nJywnR3luZWNvbG9neScsJzExMDYxMTA2Jyw2KTsKaW5zZXJ0IGludG8gRG9jdG9yc18yMDIyMjYwMTUzIHZhbHVlcyAoMTEwNywnTHVpcycsJ0d5bmVjb2xvZ3knLCcxMTA3MTEwNycsMTEpOwoKaW5zZXJ0IGludG8gUGF0aWVudHNfMjAyMjI2MDE1MyB2YWx1ZXMgKDUwMDEsJ0x1Y2FzJywnTScsMTEsJzUwMDE1MDAxJyk7Cmluc2VydCBpbnRvIFBhdGllbnRzXzIwMjIyNjAxNTMgdmFsdWVzICg1MDAyLCdBbnRob255JywnTScsNDMsJzUwMDI1MDAyJyk7Cmluc2VydCBpbnRvIFBhdGllbnRzXzIwMjIyNjAxNTMgdmFsdWVzICg1MDAzLCdOaWNrJywnTScsMjYsJzUwMDM1MDAzJyk7Cmluc2VydCBpbnRvIFBhdGllbnRzXzIwMjIyNjAxNTMgdmFsdWVzICg1MDA0LCdSb2RyaScsJ00nLDI4LCc1MDA0NTAwNCcpOwppbnNlcnQgaW50byBQYXRpZW50c18yMDIyMjYwMTUzIHZhbHVlcyAoNTAwNSwnVmlvbGEnLCdGJywzOCwnNTAwNTUwMDUnKTsKaW5zZXJ0IGludG8gUGF0aWVudHNfMjAyMjI2MDE1MyB2YWx1ZXMgKDUwMDYsJ0FubmFiZWxsZScsJ0YnLDksJzUwMDY1MDA2Jyk7Cmluc2VydCBpbnRvIFBhdGllbnRzXzIwMjIyNjAxNTMgdmFsdWVzICg1MDA3LCdCaWxsJywnTScsNjEsJzUwMDc1MDA3Jyk7Cmluc2VydCBpbnRvIFBhdGllbnRzXzIwMjIyNjAxNTMgdmFsdWVzICg1MDA4LCdUYXlsb3InLCdGJywxOSwnNTAwODUwMDgnKTsKaW5zZXJ0IGludG8gUGF0aWVudHNfMjAyMjI2MDE1MyB2YWx1ZXMgKDUwMDksJ1RyZXZvcicsJ00nLDM5LCc1MDA5NTAwOScpOwoKaW5zZXJ0IGludG8gQXBwb2ludG1lbnRzXzIwMjIyNjAxNTMgdmFsdWVzICg5MTAsJzA0LTIxLTIwMjQnLDUwMDIsMTEwMSwnY29tcGxldGVkJyk7Cmluc2VydCBpbnRvIEFwcG9pbnRtZW50c18yMDIyMjYwMTUzIHZhbHVlcyAoOTExLCcwNC0yNC0yMDI0Jyw1MDA3LDExMDIsJ2NvbmZpcm1lZCcpOwppbnNlcnQgaW50byBBcHBvaW50bWVudHNfMjAyMjI2MDE1MyB2YWx1ZXMgKDkxMiwnMDQtMjQtMjAyNCcsNTAwNSwxMTAzLCdwZW5kaW5nJyk7Cmluc2VydCBpbnRvIEFwcG9pbnRtZW50c18yMDIyMjYwMTUzIHZhbHVlcyAoOTEzLCcwNC0xOS0yMDI0Jyw1MDA2LDExMDQsJ2NvbmZpcm1lZCcpOwppbnNlcnQgaW50byBBcHBvaW50bWVudHNfMjAyMjI2MDE1MyB2YWx1ZXMgKDkxNCwnMDQtMjAtMjAyNCcsNTAwNSwxMTAyLCdjb21wbGV0ZWQnKTsKaW5zZXJ0IGludG8gQXBwb2ludG1lbnRzXzIwMjIyNjAxNTMgdmFsdWVzICg5MTUsJzA0LTIxLTIwMjQnLDUwMDgsMTEwNCwncGVuZGluZycpOwppbnNlcnQgaW50byBBcHBvaW50bWVudHNfMjAyMjI2MDE1MyB2YWx1ZXMgKDkxNiwnMDQtMjEtMjAyNCcsNTAwMiwxMTAxLCdjb21wbGV0ZWQnKTsKaW5zZXJ0IGludG8gQXBwb2ludG1lbnRzXzIwMjIyNjAxNTMgdmFsdWVzICg5MTcsJzA0LTIxLTIwMjQnLDUwMDksMTEwNywnY29tcGxldGVkJyk7CgppbnNlcnQgaW50byBCaWxsaW5nXzIwMjIyNjAxNTMgdmFsdWVzICg5OTEwLDkxMCwyNTAsJ3BhaWQnKTsKaW5zZXJ0IGludG8gQmlsbGluZ18yMDIyMjYwMTUzIHZhbHVlcyAoOTkxMSw5MTEsMjAwLCd1bnBhaWQnKTsKaW5zZXJ0IGludG8gQmlsbGluZ18yMDIyMjYwMTUzIHZhbHVlcyAoOTkxMiw5MTIsMTAwLCd1bnBhaWQnKTsKaW5zZXJ0IGludG8gQmlsbGluZ18yMDIyMjYwMTUzIHZhbHVlcyAoOTkxMyw5MTMsMTAwLCdwYWlkJyk7Cmluc2VydCBpbnRvIEJpbGxpbmdfMjAyMjI2MDE1MyB2YWx1ZXMgKDk5MTQsOTE0LDE4MCwncGFpZCcpOwppbnNlcnQgaW50byBCaWxsaW5nXzIwMjIyNjAxNTMgdmFsdWVzICg5OTE1LDkxNSwxMjAsJ3VucGFpZCcpOwppbnNlcnQgaW50byBCaWxsaW5nXzIwMjIyNjAxNTMgdmFsdWVzICg5OTE2LDkxNiwyMjAsJ3VucGFpZCcpOwppbnNlcnQgaW50byBCaWxsaW5nXzIwMjIyNjAxNTMgdmFsdWVzICg5OTE3LDkxNywxMjAsJ3VucGFpZCcpOwoKLS1hKSAKc2VsZWN0IG5hbWUsY29udGFjdG51bWJlciAKZnJvbSBwYXRpZW50c18yMDIyMjYwMTUzIAp3aGVyZSBhZ2U9KHNlbGVjdCBtYXgoYWdlKSBmcm9tIHBhdGllbnRzXzIwMjIyNjAxNTMpOwoKLS1iKQpzZWxlY3QgbmFtZSxkb2N0b3JpZCxjb3VudChhcHBvaW50bWVudGlkKSAKZnJvbSBhcHBvaW50bWVudHNfMjAyMjI2MDE1MyBuYXR1cmFsIGpvaW4gZG9jdG9yc18yMDIyMjYwMTUzIAp3aGVyZSBzcGVjaWFsaXphdGlvbj0nT25jb2xvZ3knIGFuZCBhcHBvaW50bWVudGRhdGU9JzA0LTI0LTIwMjQnIGdyb3VwIGJ5IG5hbWUsZG9jdG9yaWQ7CgotLWMpCnNlbGVjdCBwLm5hbWUscC5jb250YWN0bnVtYmVyIApmcm9tIHBhdGllbnRzXzIwMjIyNjAxNTMgcCwgYXBwb2ludG1lbnRzXzIwMjIyNjAxNTMgYSwgZG9jdG9yc18yMDIyMjYwMTUzIGQgCndoZXJlIGQuZG9jdG9yaWQ9YS5kb2N0b3JpZCBhbmQgcC5wYXRpZW50aWQ9YS5wYXRpZW50aWQgYW5kIHNwZWNpYWxpemF0aW9uPSdDYXJkaW9sb2d5J2FuZCBhcHBvaW50bWVudGRhdGU9JzA0LTI0LTIwMjQnOwoKLS1kKQpzZWxlY3QgZGlzdGluY3QgbmFtZSwgY29udGFjdG51bWJlciAKZnJvbSBkb2N0b3JzXzIwMjIyNjAxNTMgbmF0dXJhbCBqb2luIGFwcG9pbnRtZW50c18yMDIyMjYwMTUzIAp3aGVyZSBBcHBvaW5tZW50U3RhdHVzID0gJ2NvbXBsZXRlZCcgYW5kIGFwcG9pbnRtZW50ZGF0ZSBiZXR3ZWVuICcwNC0xOS0yMDI0JyBhbmQgJzA0LTIxLTIwMjQnIG9yZGVyIGJ5IG5hbWU7CgotLWUpCnNlbGVjdCBkb2N0b3JpZCwgbmFtZSBmcm9tIGRvY3RvcnNfMjAyMjI2MDE1MyBuYXR1cmFsIGxlZnQgam9pbiBhcHBvaW50bWVudHNfMjAyMjI2MDE1MyAKbWludXMKc2VsZWN0ICBkb2N0b3JpZCxuYW1lIGZyb20gZG9jdG9yc18yMDIyMjYwMTUzIG5hdHVyYWwgam9pbiBhcHBvaW50bWVudHNfMjAyMjI2MDE1MzsgCgotLWYpCgotLWcpCnNlbGVjdCBuYW1lLGNvbnRhY3RudW1iZXIsY291bnQoYXBwb2ludG1lbnRpZCkgCmZyb20gcGF0aWVudHNfMjAyMjI2MDE1MyBuYXR1cmFsIGpvaW4gYXBwb2ludG1lbnRzXzIwMjIyNjAxNTMgCmdyb3VwIGJ5IG5hbWUsY29udGFjdG51bWJlciBoYXZpbmcgY291bnQoYXBwb2ludG1lbnRpZCk+PTI7CgotLWgpCnNlbGVjdCBzcGVjaWFsaXphdGlvbixhdmcoeWVhcnNleHBlcmllbmNlKSBmcm9tIGRvY3RvcnNfMjAyMjI2MDE1MyBncm91cCBieSBzcGVjaWFsaXphdGlvbjsKCi0taSkKc2VsZWN0IGRvY3RvcmlkLCBuYW1lLCBjb3VudChhcHBvaW50bWVudGlkKSAKZnJvbSBkb2N0b3JzXzIwMjIyNjAxNTMgbmF0dXJhbCBsZWZ0IGpvaW4gYXBwb2ludG1lbnRzXzIwMjIyNjAxNTMgIAp3aGVyZSBhcHBvaW5tZW50c3RhdHVzPSdjb21wbGV0ZWQnIGdyb3VwIGJ5IGRvY3RvcmlkLG5hbWU7CgotLWopCnVwZGF0ZSBiaWxsaW5nXzIwMjIyNjAxNTMKc2V0IGJpbGxhbW91bnQgPSBjYXNlCiAgICAgICAgICAgICAgICAgd2hlbiBiaWxsYW1vdW50IDwgMTAwMCB0aGVuIGJpbGxhbW91bnQtIChiaWxsQW1vdW50ICogMC4xNSkKICAgICAgICAgICAgICAgICB3aGVuIGJpbGxhbW91bnQgPj0gMTAwMCBhbmQgYmlsbGFtb3VudCA8IDI1MDAgdGhlbiBiaWxsYW1vdW50LShiaWxsYW1vdW50ICogMC4xMCkKICAgICAgICAgICAgICAgICBlbHNlIGJpbGxhbW91bnQgLShiaWxsYW1vdW50ICogMC4wNSkKICAgICAgICAgICAgICAgICBlbmQ7CgotLWspCmFsdGVyIHRhYmxlIHBhdGllbnRzXzIwMjIyNjAxNTMgYWRkIGFkcmVzcyB2YXJjaGFyKDQwKTsKCi0tbCkKY3JlYXRlIHZpZXcgZ3luZWNvbG9neWFwcG9pbnRtZW50IGFzCnNlbGVjdCBwLm5hbWUgYXMgcGF0aWVudG5hbWUsIGQubmFtZSBhcyBkb2N0b3JuYW1lLCBhLmFwcG9pbnRtZW50ZGF0ZSwgYS5hcHBvaW5tZW50c3RhdHVzCmZyb20gcGF0aWVudHNfMjAyMjI2MDE1MyBwLCBhcHBvaW50bWVudHNfMjAyMjI2MDE1MyBhLCBkb2N0b3JzXzIwMjIyNjAxNTMgZCAKd2hlcmUgZC5kb2N0b3JpZD1hLmRvY3RvcmlkIGFuZCBwLnBhdGllbnRpZD1hLnBhdGllbnRpZAphbmQgc3BlY2lhbGl6YXRpb24gPSAnR3luZWNvbG9neSc7CgpzZWxlY3QgKiBmcm9tIGd5bmVjb2xvZ3lhcHBvaW50bWVudDsK