Home » SQL & PL/SQL » SQL & PL/SQL » Hierarchical queries with aggregation (11.2.0.3)
Hierarchical queries with aggregation [message #636311] |
Tue, 21 April 2015 05:42 |
grpatwari
Messages: 288 Registered: June 2008 Location: Hyderabad
|
Senior Member |
|
|
Hi,
I have one requirement in my assignment.
create table empl(Empno number, Ename varchar2(100),Mgrno number,Sal number(7,2),A_Sal number(9,2));
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (1,'KING', NULL, 10000, NULL);
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (2,'BLAKE',1, 1000, NULL);
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (3,'ALLEN', 2, 100, NULL);
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (4,'JAMES', 2, 200, NULL);
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (5,'MARTIN', 2, 300, NULL);
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (6,'TURNER', 2, 400, NULL);
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (7,'WARD', 2, 500, NULL);
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (8,'CLARK', 1, 2000, NULL);
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (9,'MILLER', 8, 600, NULL);
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (10,'JONES', 1, 3000, NULL);
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (11,'FORD', 10, 700, NULL);
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (12,'SMITH', 11, 111, NULL);
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (13,'SCOTT', 10, 800, NULL);
INSERT INTO empl (Empno, Ename, Mgrno, Sal, A_Sal) VALUES (14,'ADAMS', 13, 222, NULL);
KING
BLAKE
ALLEN
JAMES
MARTIN
TURNER
WARD
CLARK
MILLER
JONES
FORD
SMITH
SCOTT
ADAMS
KING is parent of BLAKE, CLARK and JONES
BLAKE is parent of ALLEN, JAMES, MARTIN, TURNER and WARD
CLARK is parent of MILLER
JONES is parent of FORD and SCOTT
FORD is parent of SMITH
SCOTT is parent of ADAMS
I want to update A_SAL column in the table based on parent.
For example:
ADAMS A_sal = ADAMS sal (becoz ADAMS doesn't have any child)
SCOTT A_sal = ADAMS sal (or) ADAMS A_sal + SCOTT sal
SMITH A_sal = SMITH sal (becoz SMITH doesn't have any child)
FORD A_sal = SMITH sal (or) SMITH A_sal + FORD sal
JONES A_sal = FORD sal (or) FORD A_sal + SCOTT sal (or) SCOTT A_sal
MILLER A_sal = MILLER sal (becoz MILLER doesn't have any child)
CLARK A_sal = MILLER sal (or) MILLER A_sal + CLARK sal
ALLEN A_sal = ALLEN sal (becoz ALLEN doesn't have any child)
JAMES A_sal = JAMES sal (becoz JAMES doesn't have any child)
MARTIN A_sal = MARTIN sal (becoz MARTIN doesn't have any child)
TURNER A_sal = TURNER sal (becoz TURNER doesn't have any child)
WARD A_sal = WARD sal (becoz WARD doesn't have any child)
BLAKE A_SAL = ALLEN sal (or) ALLEN A_sal+ JAMES sal (or) JAMES A_sal+ MARTIN sal (or) MARTIN A_sal + TURNER sal (or) TURNER A_sal + WARD sal (or) WARD A_sal + BLAKE SAL
KING A_SAL = BLAKE sal (or) BLAKE A_SAL + CLARK sal (or) CLARK A_sal+ JONES sal (or) JONES A_sal
I have written the procedure to update from child records A_SAl to parent records of A_sal.
Please let me know how can I update by using hierarchical queries or is there any way to do this. Please suggest on this.
|
|
|
|
|
|
Goto Forum:
Current Time: Wed Apr 24 05:57:59 CDT 2024
|