You are on page 1of 5

Refund System in Saudi Airline

CPIT 340 - Homework 3

By
Ghada Musalli Alsulami 1806901 IAR
Maha Benaider 1805332 IAR
Atheer Alghamdi 1806236 IAR

Department of Information Technology


Faculty of Computing and Information Technology
King Abdelaziz University
Jeddah – Saudi Arabia
[Fall 2020]
 Code
declare
athlete varchar2(255);
gold number(10);
silver number(10);
bronze number(10);
total number(4);
CURSOR bestAthletes_cursor (sport_ VARCHAR2 , gender_ varchar2) IS SELECT ATHLETE,
COUNT(MEDAL) as Gold,
(SELECT COUNT(MEDAL) FROM OLYM.OLYM_MEDALS_VIEW WHERE MEDAL='Silver' AND ATHLETE
= OMV.ATHLETE) as Silver,
(SELECT COUNT(MEDAL) as Silver FROM OLYM.OLYM_MEDALS_VIEW WHERE MEDAL='Bronze' AND
ATHLETE = OMV.ATHLETE) as Bronze,
(select count(MEDAL)
from OLYM.OLYM_MEDALS_VIEW WHERE ATHLETE=OMV.ATHLETE) AS TOTAL
FROM OLYM.OLYM_MEDALS_VIEW OMV where( select count(MEDAL)
from OLYM.OLYM_MEDALS_VIEW WHERE ATHLETE=OMV.ATHLETE)>5 and MEDAL = 'Gold' and
sport = sport_ and gender = gender_ AND ATHLETE = OMV.ATHLETE
GROUP BY ATHLETE
order by ATHLETE asc;

CURSOR bestAthletes_cursor1 (noc_ VARCHAR2) IS SELECT ATHLETE, COUNT(MEDAL) as Gold,


(SELECT COUNT(MEDAL) FROM OLYM.OLYM_MEDALS_VIEW WHERE MEDAL='Silver' AND ATHLETE
= OMV.ATHLETE),
(SELECT COUNT(MEDAL) as Silver FROM OLYM.OLYM_MEDALS_VIEW WHERE MEDAL='Bronze' AND
ATHLETE = OMV.ATHLETE) ,
(select count(MEDAL)
from OLYM.OLYM_MEDALS_VIEW WHERE ATHLETE=OMV.ATHLETE)
FROM OLYM.OLYM_MEDALS_VIEW OMV where( select count(MEDAL)
from OLYM.OLYM_MEDALS_VIEW WHERE ATHLETE=OMV.ATHLETE)>5 and MEDAL = 'Gold' and
sport = sport and noc = noc_ AND ATHLETE = OMV.ATHLETE
GROUP BY ATHLETE
order by ATHLETE asc;

CURSOR bestAthletes_cursor2 (sport_ VARCHAR2) IS SELECT ATHLETE, COUNT(MEDAL) as Gold,


(SELECT COUNT(MEDAL) FROM OLYM.OLYM_MEDALS_VIEW WHERE MEDAL='Silver' AND ATHLETE
= OMV.ATHLETE),
(SELECT COUNT(MEDAL) as Silver FROM OLYM.OLYM_MEDALS_VIEW WHERE MEDAL='Bronze' AND
ATHLETE = OMV.ATHLETE) ,
(select count(MEDAL)
from OLYM.OLYM_MEDALS_VIEW WHERE ATHLETE=OMV.ATHLETE)
FROM OLYM.OLYM_MEDALS_VIEW OMV where( select count(MEDAL)
from OLYM.OLYM_MEDALS_VIEW WHERE ATHLETE=OMV.ATHLETE)>5 and MEDAL = 'Gold' and
sport = sport_ AND ATHLETE = OMV.ATHLETE
GROUP BY ATHLETE
order by ATHLETE asc;

procedure bestAthletes_proc(v_sport in varchar2 default ' ', v_gender in varchar2 default ' ', v_NOC
in varchar2 default ' ') is
begin

if(v_gender = 'Women')then
OPEN bestAthletes_cursor(v_sport, v_gender);
loop
fetch bestAthletes_cursor into athlete, gold, silver, bronze, total;
exit when bestAthletes_cursor%NOTFOUND;
dbms_output.put_line(' | ' ||RPAD(athlete, 35)||'| ' || gold||' | ' || silver||' | ' ||bronze||'
| ' ||total );
end loop;
CLOSE bestAthletes_cursor;
end if;

if(v_NOC = 'AUS') then


OPEN bestAthletes_cursor1(v_NOC);
loop
fetch bestAthletes_cursor1 into athlete, gold, silver, bronze, total;
exit when bestAthletes_cursor1%NOTFOUND;
dbms_output.put_line(' | ' ||RPAD(athlete, 35)||'| ' || gold||' | ' || silver||' | ' ||bronze||'
| ' ||total );
end loop;
CLOSE bestAthletes_cursor1;
end if;

if(v_sport = 'Gymnastics') then


OPEN bestAthletes_cursor2(v_sport);
loop
fetch bestAthletes_cursor2 into athlete, gold, silver, bronze, total;
exit when bestAthletes_cursor2%NOTFOUND;
dbms_output.put_line(' | ' ||RPAD(athlete, 35)||'| ' || gold||' | ' || silver||' | ' ||bronze||'
| ' ||total );
end loop;
CLOSE bestAthletes_cursor2;
end if;
DBMS_OUTPUT.put_line('-------------------------------------------');
end;
begin

dbms_output.put_line('Women in Aquatics');
dbms_output.put_line(rpad(' -', 72, '-'));
dbms_output.put_line(' | ' || RPAD('Athlete', 35) || '| Gold | Silver | Bronze | Total |');
dbms_output.put_line(rpad(' -', 72, '-'));
bestAthletes_proc(v_sport => 'Aquatics', v_gender => 'Women');

dbms_output.put_line('Australian athletes');
dbms_output.put_line(rpad(' -', 72, '-'));
dbms_output.put_line(' | ' || RPAD('Athlete', 35) || '| Gold | Silver | Bronze | Total |');
dbms_output.put_line(rpad(' -', 72, '-'));

bestAthletes_proc(v_NOC => 'AUS');

dbms_output.put_line('Gymnastics athletes');
dbms_output.put_line(rpad(' -', 72, '-'));
dbms_output.put_line(' | ' || RPAD('Athlete', 35) || '| Gold | Silver | Bronze | Total |');
dbms_output.put_line(rpad(' -', 72, '-'));

bestAthletes_proc(v_sport => 'Gymnastics');


end;
 Output

You might also like