SELECT LEVELS ,
(CASE WHEN LEVELS = 'H' THEN DEPTNO ELSE NULL END) DEPTNO,
(CASE WHEN LEVELS = 'H' THEN DNAME ELSE NULL END) DNAME,
ENAME,
EMP_DEPTNO,
SAL
FROM (
SELECT 'H' LEVELS,DEPTNO,DNAME,NULL ENAME,NULL EMP_DEPTNO,NULL SAL,DEPTNO REF_DEPTNO
FROM DEPT
UNION ALL
SELECT 'D' LEVELS, B.DEPTNO,B.DNAME,A.ENAME,A.DEPTNO,A.SAL,B.DEPTNO REF_DEPTNO
FROM EMP A, DEPT B
WHERE A.DEPTNO = B.DEPTNO
)
ORDER BY REF_DEPTNO,DECODE(LEVELS,'H',1,'D',2)
ORA-00942: table or view does not existMore Details: https://docs.oracle.com/error-help/db/ora-00942
CREATE TABLE DEPT
(DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
DNAME VARCHAR2(14) ,
LOC VARCHAR2(13) )
Table created.
CREATE TABLE EMP
(EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT)
Table created.
INSERT INTO DEPT VALUES
(10,'ACCOUNTING','NEW YORK')
1 row(s) inserted.
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS')
1 row(s) inserted.
INSERT INTO DEPT VALUES
(30,'SALES','CHICAGO')
1 row(s) inserted.
INSERT INTO DEPT VALUES
(40,'OPERATIONS','BOSTON')
1 row(s) inserted.
INSERT INTO EMP VALUES
(7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20)
1 row(s) inserted.
INSERT INTO EMP VALUES
(7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30)
1 row(s) inserted.
INSERT INTO EMP VALUES
(7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30)
1 row(s) inserted.
INSERT INTO EMP VALUES
(7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20)
1 row(s) inserted.
INSERT INTO EMP VALUES
(7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30)
1 row(s) inserted.
INSERT INTO EMP VALUES
(7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30)
1 row(s) inserted.
INSERT INTO EMP VALUES
(7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10)
1 row(s) inserted.
INSERT INTO EMP VALUES
(7788,'SCOTT','ANALYST',7566,to_date('13-JUL-87')-85,3000,NULL,20)
1 row(s) inserted.
INSERT INTO EMP VALUES
(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10)
1 row(s) inserted.
INSERT INTO EMP VALUES
(7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30)
1 row(s) inserted.
INSERT INTO EMP VALUES
(7876,'ADAMS','CLERK',7788,to_date('13-JUL-87')-51,1100,NULL,20)
1 row(s) inserted.
INSERT INTO EMP VALUES
(7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30)
1 row(s) inserted.
INSERT INTO EMP VALUES
(7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20)
1 row(s) inserted.
INSERT INTO EMP VALUES
(7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10)
1 row(s) inserted.
SELECT LEVELS ,
(CASE WHEN LEVELS = 'H' THEN DEPTNO ELSE NULL END) DEPTNO,
(CASE WHEN LEVELS = 'H' THEN DNAME ELSE NULL END) DNAME,
ENAME,
EMP_DEPTNO,
SAL
FROM (
SELECT 'H' LEVELS,DEPTNO,DNAME,NULL ENAME,NULL EMP_DEPTNO,NULL SAL,DEPTNO REF_DEPTNO
FROM DEPT
UNION ALL
SELECT 'D' LEVELS, B.DEPTNO,B.DNAME,A.ENAME,A.DEPTNO,A.SAL,B.DEPTNO REF_DEPTNO
FROM EMP A, DEPT B
WHERE A.DEPTNO = B.DEPTNO
)
ORDER BY REF_DEPTNO,DECODE(LEVELS,'H',1,'D',2)
LEVELS | DEPTNO | DNAME | ENAME | EMP_DEPTNO | SAL | H | 10 | ACCOUNTING | - | - | - | D | - | - | CLARK | 10 | 2450 | D | - | - | MILLER | 10 | 1300 | D | - | - | KING | 10 | 5000 | H | 20 | RESEARCH | - | - | - | D | - | - | SMITH | 20 | 800 | D | - | - | FORD | 20 | 3000 | D | - | - | ADAMS | 20 | 1100 | D | - | - | SCOTT | 20 | 3000 | D | - | - | JONES | 20 | 2975 | H | 30 | SALES | - | - | - | D | - | - | ALLEN | 30 | 1600 | D | - | - | JAMES | 30 | 950 | D | - | - | TURNER | 30 | 1500 | D | - | - | BLAKE | 30 | 2850 | D | - | - | MARTIN | 30 | 1250 | D | - | - | WARD | 30 | 1250 | H | 40 | OPERATIONS | - | - | - |
---|
SELECT LEVELS ,
(CASE WHEN LEVELS = 'H' THEN DEPTNO ELSE NULL END) DEPTNO,
(CASE WHEN LEVELS = 'H' THEN DNAME ELSE NULL END) DNAME,
ENAME,
EMP_DEPTNO,
SAL
FROM (
SELECT 'H' LEVELS,DEPTNO,DNAME,NULL ENAME,NULL EMP_DEPTNO,NULL SAL,DEPTNO REF_DEPTNO
FROM DEPT
UNION ALL
SELECT 'D' LEVELS, B.DEPTNO,B.DNAME,A.ENAME,A.DEPTNO,A.SAL,B.DEPTNO REF_DEPTNO
FROM EMP A, DEPT B
WHERE A.DEPTNO = B.DEPTNO
)
ORDER BY REF_DEPTNO,DECODE(LEVELS,'H',1,'D',2)
LEVELS | DEPTNO | DNAME | ENAME | EMP_DEPTNO | SAL | H | 10 | ACCOUNTING | - | - | - | D | - | - | CLARK | 10 | 2450 | D | - | - | MILLER | 10 | 1300 | D | - | - | KING | 10 | 5000 | H | 20 | RESEARCH | - | - | - | D | - | - | SMITH | 20 | 800 | D | - | - | FORD | 20 | 3000 | D | - | - | ADAMS | 20 | 1100 | D | - | - | SCOTT | 20 | 3000 | D | - | - | JONES | 20 | 2975 | H | 30 | SALES | - | - | - | D | - | - | ALLEN | 30 | 1600 | D | - | - | JAMES | 30 | 950 | D | - | - | TURNER | 30 | 1500 | D | - | - | BLAKE | 30 | 2850 | D | - | - | MARTIN | 30 | 1250 | D | - | - | WARD | 30 | 1250 | H | 40 | OPERATIONS | - | - | - |
---|