I have a total of 4 tables and they deal with Frequent Flyers. My goal is to find the Number of Frequent Flyers in a given period of time dating back to 1990 till date.
I need to create a Report where I am listing the Number of Frequent Flyers based on when they enrolled, took a survey and took their flights. The test data is only a small sample of data. Also, some Frequent Flyers may have Enrolled and taken a Survey but never flown like Freq Flyer 1004 and some customers might have enrolled but never taken the survey like Freq Flyer No 1010. The report needs to be by Year (1990 - Sysdate).
Year Enrolled Took Survey Flights Flown
=========================================================
1990 99 99 99
1991 99 99 99
1992 99 99 99
...
2010 99 99 99
2011 99 99 99
2012 99 99 99
Scripts for Tables and Inserts:
Table #1: Frequent Flyer Master table
CREATE TABLE FREQ_FLYER
( "FREQ_FLYER_NO" VARCHAR2(4 BYTE),
"FREQ_FLYER_LAST_NAME" VARCHAR2(30 BYTE),
"FREQ_FLYER_FIRST_NAME" VARCHAR2(30 BYTE)
);
REM INSERTING into FREQ_FLYER
SET DEFINE OFF;
Insert into FREQ_FLYER (FREQ_FLYER_NO,FREQ_FLYER_LAST_NAME,FREQ_FLYER_FIRST_NAME) values ('1001','Taylor','David');
Insert into FREQ_FLYER (FREQ_FLYER_NO,FREQ_FLYER_LAST_NAME,FREQ_FLYER_FIRST_NAME) values ('1002','Green','Robert');
Insert into FREQ_FLYER (FREQ_FLYER_NO,FREQ_FLYER_LAST_NAME,FREQ_FLYER_FIRST_NAME) values ('1003','McWilliams','Cynthia');
Insert into FREQ_FLYER (FREQ_FLYER_NO,FREQ_FLYER_LAST_NAME,FREQ_FLYER_FIRST_NAME) values ('1004','Poppins','Mary');
Insert into FREQ_FLYER (FREQ_FLYER_NO,FREQ_FLYER_LAST_NAME,FREQ_FLYER_FIRST_NAME) values ('1005','Longnose','Pinochio');
Insert into FREQ_FLYER (FREQ_FLYER_NO,FREQ_FLYER_LAST_NAME,FREQ_FLYER_FIRST_NAME) values ('1006','Brown','Edward');
Insert into FREQ_FLYER (FREQ_FLYER_NO,FREQ_FLYER_LAST_NAME,FREQ_FLYER_FIRST_NAME) values ('1007','Menace','Dennis');
Insert into FREQ_FLYER (FREQ_FLYER_NO,FREQ_FLYER_LAST_NAME,FREQ_FLYER_FIRST_NAME) values ('1008','Black','Monica');
Insert into FREQ_FLYER (FREQ_FLYER_NO,FREQ_FLYER_LAST_NAME,FREQ_FLYER_FIRST_NAME) values ('1009','Dombrowski','Tom');
Insert into FREQ_FLYER (FREQ_FLYER_NO,FREQ_FLYER_LAST_NAME,FREQ_FLYER_FIRST_NAME) values ('1010','Brown','Craig');
Insert into FREQ_FLYER (FREQ_FLYER_NO,FREQ_FLYER_LAST_NAME,FREQ_FLYER_FIRST_NAME) values ('1011','Hernandez','Elsa');
Insert into FREQ_FLYER (FREQ_FLYER_NO,FREQ_FLYER_LAST_NAME,FREQ_FLYER_FIRST_NAME) values ('1012','Williams','Brian');
--------------------------------------------------------
-- Constraints for Table FREQ_FLYER
--------------------------------------------------------
ALTER TABLE FREQ_FLYER MODIFY ("FREQ_FLYER_NO" NOT NULL ENABLE);
Table# 2: Enrollment
CREATE TABLE FREQ_FLYER_ENROLLMENT
( "FREQ_FLYER_NO" VARCHAR2(4 BYTE),
"START_DATE" DATE,
"END_DATE" DATE
);
REM INSERTING into FREQ_FLYER_ENROLLMENT
SET DEFINE OFF;
Insert into FREQ_FLYER_ENROLLMENT (FREQ_FLYER_NO,START_DATE,END_DATE) values ('1001',to_date('12-JAN-90','DD-MON-RR'),null);
Insert into FREQ_FLYER_ENROLLMENT (FREQ_FLYER_NO,START_DATE,END_DATE) values ('1002',to_date('17-JAN-90','DD-MON-RR'),null);
Insert into FREQ_FLYER_ENROLLMENT (FREQ_FLYER_NO,START_DATE,END_DATE) values ('1003',to_date('31-DEC-95','DD-MON-RR'),null);
Insert into FREQ_FLYER_ENROLLMENT (FREQ_FLYER_NO,START_DATE,END_DATE) values ('1004',to_date('30-DEC-95','DD-MON-RR'),null);
Insert into FREQ_FLYER_ENROLLMENT (FREQ_FLYER_NO,START_DATE,END_DATE) values ('1005',to_date('01-JAN-00','DD-MON-RR'),null);
Insert into FREQ_FLYER_ENROLLMENT (FREQ_FLYER_NO,START_DATE,END_DATE) values ('1006',to_date('02-JAN-00','DD-MON-RR'),null);
Insert into FREQ_FLYER_ENROLLMENT (FREQ_FLYER_NO,START_DATE,END_DATE) values ('1007',to_date('31-JAN-00','DD-MON-RR'),null);
Insert into FREQ_FLYER_ENROLLMENT (FREQ_FLYER_NO,START_DATE,END_DATE) values ('1008',to_date('30-OCT-11','DD-MON-RR'),null);
Insert into FREQ_FLYER_ENROLLMENT (FREQ_FLYER_NO,START_DATE,END_DATE) values ('1009',to_date('01-MAR-12','DD-MON-RR'),null);
Insert into FREQ_FLYER_ENROLLMENT (FREQ_FLYER_NO,START_DATE,END_DATE) values ('1010',to_date('31-MAR-12','DD-MON-RR'),null);
--------------------------------------------------------
-- Constraints for Table FREQ_FLYER_ENROLLMENT
--------------------------------------------------------
ALTER TABLE FREQ_FLYER_ENROLLMENT MODIFY ("FREQ_FLYER_NO" NOT NULL ENABLE);
ALTER TABLE FREQ_FLYER_ENROLLMENT MODIFY ("START_DATE" NOT NULL ENABLE);
Table #3: Survey
CREATE TABLE FREQ_FLYER_SURVEY
( "FREQ_FLYER_NO" VARCHAR2(4 BYTE),
"SURVEY_DATE" DATE
);
SET DEFINE OFF;
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1001',to_date('01-JAN-91','DD-MON-RR'));
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1002',to_date('01-FEB-91','DD-MON-RR'));
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1003',to_date('01-JAN-96','DD-MON-RR'));
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1003',to_date('01-JAN-97','DD-MON-RR'));
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1003',to_date('01-JAN-98','DD-MON-RR'));
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1004',to_date('31-DEC-95','DD-MON-RR'));
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1004',to_date('12-FEB-11','DD-MON-RR'));
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1005',to_date('12-MAR-11','DD-MON-RR'));
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1005',to_date('12-APR-12','DD-MON-RR'));
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1006',to_date('10-APR-10','DD-MON-RR'));
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1007',to_date('10-APR-10','DD-MON-RR'));
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1008',to_date('31-JUL-12','DD-MON-RR'));
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1009',to_date('31-JUL-12','DD-MON-RR'));
Insert into FREQ_FLYER_SURVEY (FREQ_FLYER_NO,SURVEY_DATE) values ('1009',to_date('02-AUG-12','DD-MON-RR'));
--------------------------------------------------------
-- Constraints for Table FREQ_FLYER_SURVEY
--------------------------------------------------------
ALTER TABLE FREQ_FLYER_SURVEY MODIFY ("FREQ_FLYER_NO" NOT NULL ENABLE);
Table# 4: Flights
CREATE TABLE FREQ_FLYER_FLIGHTS
( "FREQ_FLYER_NO" VARCHAR2(4 BYTE),
"FLT_NO" VARCHAR2(4 BYTE),
"FLT_DATE" DATE
);
REM INSERTING into FREQ_FLYER_FLIGHTS
SET DEFINE OFF;
Insert into FREQ_FLYER_FLIGHTS (FREQ_FLYER_NO,FLT_NO,FLT_DATE) values ('1001','1234',to_date('01-JAN-00','DD-MON-RR'));
Insert into FREQ_FLYER_FLIGHTS (FREQ_FLYER_NO,FLT_NO,FLT_DATE) values ('1001','1234',to_date('01-JAN-12','DD-MON-RR'));
Insert into FREQ_FLYER_FLIGHTS (FREQ_FLYER_NO,FLT_NO,FLT_DATE) values ('1001','2345',to_date('01-AUG-12','DD-MON-RR'));
Insert into FREQ_FLYER_FLIGHTS (FREQ_FLYER_NO,FLT_NO,FLT_DATE) values ('1002','1234',to_date('01-FEB-95','DD-MON-RR'));
Insert into FREQ_FLYER_FLIGHTS (FREQ_FLYER_NO,FLT_NO,FLT_DATE) values ('1002','2345',to_date('01-AUG-12','DD-MON-RR'));
Insert into FREQ_FLYER_FLIGHTS (FREQ_FLYER_NO,FLT_NO,FLT_DATE) values ('1002','2346',to_date('04-AUG-12','DD-MON-RR'));
Insert into FREQ_FLYER_FLIGHTS (FREQ_FLYER_NO,FLT_NO,FLT_DATE) values ('1003','1234',to_date('01-DEC-00','DD-MON-RR'));
Insert into FREQ_FLYER_FLIGHTS (FREQ_FLYER_NO,FLT_NO,FLT_DATE) values ('1003','2346',to_date('01-JAN-01','DD-MON-RR'));
Insert into FREQ_FLYER_FLIGHTS (FREQ_FLYER_NO,FLT_NO,FLT_DATE) values ('1010','1234',to_date('01-JUL-12','DD-MON-RR'));
--------------------------------------------------------
-- Constraints for Table FREQ_FLYER_FLIGHTS
--------------------------------------------------------
ALTER TABLE FREQ_FLYER_FLIGHTS MODIFY ("FREQ_FLYER_NO" NOT NULL ENABLE);
ALTER TABLE FREQ_FLYER_FLIGHTS MODIFY ("FLT_NO" NOT NULL ENABLE);
Your help or suggestions are welcome.
Edited by: Roxyrollers on Aug 7, 2012 5:39 PM
Edited by: Roxyrollers on Aug 8, 2012 8:35 AM