View the Exhibit and examine the data in the PROJ_TASK_DETAILS table.
The PROJ_TASK_DETAILS table stores information about tasks involved in a project and the relation between them.
The BASED_ON column indicates dependencies between tasks. Some tasks do not depend on the completion of any other tasks.
You need to generate a report showing all task IDs, the corresponding task ID they are dependent on, and the name of the employee in charge of the task it depends on.
Which query would give the required result?
A. SELECT p.task_id, p.based_on, d.task_in_charge
FROM proj_task_details p JOIN proj_task_details d
ON (p.based_on = d.task_id);
B. SELECT p.task_id, p.based_on, d.task_in_charge
FROM proj_task_details p LEFT OUTER JOIN proj_task_details d ON (p.based_on = d.task_id);
C. SELECT p.task_id, p.based_on, d.task_in_charge
FROM proj_task_details p FULL OUTER JOIN proj_task_details d ON (p.based_on = d.task_id);
D. SELECT p.task_id, p.based_on, d.task_in_charge
FROM proj_task_details p JOIN proj_task_details d
ON (p.task_id = d.task_id);
b is correct
B is correct.
Task P02 Depends on completion of task P01 and in charge of dependent Task P01 is KING (“and the name of the employee in charge of the task it depends on”).
Only “D” is correct, not “B”
“D” returns:
P01 KING
P02 P01 KOCHAR
P03 GREEN
P04 P03 SCOTT
and “B” returns:
P02 P01 KING
P04 P03 GREEN
P01 NULL NULL
P03 NULL NULL
Right. You can test it on this set:
create table proj_task_details(
task_id VARCHAR2(10),
BASED_ON VARCHAR2(10),
TASK_IN_CHARGE VARCHAR2(10)
);
INSERT INTO proj_task_details VALUES (‘P01’, NULL, ‘KING’);
INSERT INTO proj_task_details VALUES (‘P02’, ‘P01′,’KOCHAR’);
INSERT INTO proj_task_details VALUES (‘P03’, NULL, ‘GREEN’);
INSERT INTO proj_task_details VALUES (‘P04’, ‘P03′,’SCOTT’);