SQL>
SQL>
SQL> create table employees(
2 empno NUMBER(4)
3 , ename VARCHAR2(8)
4 , init VARCHAR2(5)
5 , job VARCHAR2(8)
6 , mgr NUMBER(4)
7 , bdate DATE
8 , msal NUMBER(6,2)
9 , comm NUMBER(6,2)
10 , deptno NUMBER(2) ) ;
Table created.
SQL>
SQL>
SQL> insert into employees values(1,'Jason', 'N', 'TRAINER', 2, date '1965-12-18', 800 , NULL, 10);
1 row created.
SQL> insert into employees values(2,'Jerry', 'J', 'SALESREP',3, date '1966-11-19', 1600, 300, 10);
1 row created.
SQL> insert into employees values(3,'Jord', 'T' , 'SALESREP',4, date '1967-10-21', 1700, 500, 20);
1 row created.
SQL> insert into employees values(4,'Mary', 'J', 'MANAGER', 5, date '1968-09-22', 1800, NULL, 20);
1 row created.
SQL> insert into employees values(5,'Joe', 'P', 'SALESREP',6, date '1969-08-23', 1900, 1400, 30);
1 row created.
SQL> insert into employees values(6,'Black', 'R', 'MANAGER', 7, date '1970-07-24', 2000, NULL, 30);
1 row created.
SQL> insert into employees values(7,'Red', 'A', 'MANAGER', 8, date '1971-06-25', 2100, NULL, 40);
1 row created.
SQL> insert into employees values(8,'White', 'S', 'TRAINER', 9, date '1972-05-26', 2200, NULL, 40);
1 row created.
SQL> insert into employees values(9,'Yellow', 'C', 'DIRECTOR',10, date '1973-04-27', 2300, NULL, 20);
1 row created.
SQL> insert into employees values(10,'Pink', 'J', 'SALESREP',null,date '1974-03-28', 2400, 0, 30);
1 row created.
SQL>
SQL>
SQL> create table course_schedule
2 ( course VARCHAR2(6)
3 , begindate DATE
4 , trainer NUMBER(4)
5 , location VARCHAR2(20)) ;
Table created.
SQL>
SQL>
SQL> insert into course_schedule values ('SQL',date '1999-04-12',1,'VANCOUVER' );
1 row created.
SQL> insert into course_schedule values ('OAU',date '1999-08-10',2,'CHICAGO');
1 row created.
SQL> insert into course_schedule values ('SQL',date '1999-10-04',3,'SEATTLE');
1 row created.
SQL> insert into course_schedule values ('SQL',date '1999-12-13',4,'DALLAS' );
1 row created.
SQL> insert into course_schedule values ('JAV',date '1999-12-13',5,'SEATTLE');
1 row created.
SQL> insert into course_schedule values ('XML',date '2000-02-03',6,'VANCOUVER' );
1 row created.
SQL> insert into course_schedule values ('JAV',date '2000-02-01',7,'DALLAS' );
1 row created.
SQL> insert into course_schedule values ('PLS',date '2000-09-11',8,'VANCOUVER' );
1 row created.
SQL> insert into course_schedule values ('XML',date '2000-09-18',NULL,'SEATTLE');
1 row created.
SQL> insert into course_schedule values ('OAU',date '2000-09-27',9,'DALLAS' );
1 row created.
SQL> insert into course_schedule values ('ERM',date '2001-01-15',10, NULL );
1 row created.
SQL> insert into course_schedule values ('PRO',date '2001-02-19',NULL,'VANCOUVER' );
1 row created.
SQL> insert into course_schedule values ('RSD',date '2001-02-24',8,'CHICAGO');
1 row created.
SQL>
SQL>
SQL> create table courses
2 ( code VARCHAR2(6)
3 , description VARCHAR2(30)
4 , category CHAR(3)
5 , duration NUMBER(2)) ;
Table created.
SQL>
SQL>
SQL> insert into courses values('SQL','SQL course', 'GEN',4);
1 row created.
SQL> insert into courses values('OAU','Oracle course', 'GEN',1);
1 row created.
SQL> insert into courses values('JAV','Java course', 'BLD',4);
1 row created.
SQL> insert into courses values('PLS','PL/SQL course', 'BLD',1);
1 row created.
SQL> insert into courses values('XML','XML course', 'BLD',2);
1 row created.
SQL> insert into courses values('ERM','ERM course', 'DSG',3);
1 row created.
SQL> insert into courses values('PMT','UML course', 'DSG',1);
1 row created.
SQL> insert into courses values('RSD','C# course', 'DSG',2);
1 row created.
SQL> insert into courses values('PRO','C++ course', 'DSG',5);
1 row created.
SQL> insert into courses values('GEN','GWT course', 'DSG',4);
1 row created.
SQL>
SQL>
SQL>
SQL> select DISTINCT c.code
2 , o.begindate
3 , c.duration
4 , case when o.trainer is not null
5 then e.ename
6 else null
7 end as trainer
8 from employees e
9 , courses c
10 , course_schedule o
11 where coalesce(o.trainer,-1) in (e.empno,-1)
12 and o.course = c.code;
CODE BEGINDATE DURATION TRAINER
------ --------- ---------- --------
JAV 13-DEC-99 4 Joe
OAU 27-SEP-00 1 Yellow
JAV 01-FEB-00 4 Red
RSD 24-FEB-01 2 White
OAU 10-AUG-99 1 Jerry
PRO 19-FEB-01 5
SQL 04-OCT-99 4 Jord
ERM 15-JAN-01 3 Pink
XML 18-SEP-00 2
PLS 11-SEP-00 1 White
SQL 13-DEC-99 4 Mary
SQL 12-APR-99 4 Jason
XML 03-FEB-00 2 Black
13 rows selected.
SQL>
SQL>
SQL> drop table employees;
Table dropped.
SQL>
SQL> drop table course_schedule;
Table dropped.
SQL>
SQL> drop table courses;
Table dropped.
SQL>
SQL>