Home » SQL & PL/SQL » SQL & PL/SQL » Get value between two fields (Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod, WINDOWS 2003)
Get value between two fields [message #611336] |
Tue, 01 April 2014 12:29 |
|
hissam78
Messages: 193 Registered: August 2011 Location: PAKISTAN
|
Senior Member |
|
|
DEAR ALL,
Please help me to make a query
In Table-1 (UTL_CHARGES) we have start_mrl, end_mrl and Value Column Names with Following Data
LINE_ID START_MRL END_MRL VALUE
1 1 5 500
2 5.1 10 600
3 10.1 15 800
4 15.1 20 1000
5 20.1 25 2000
6 25.1 30 3000
In Table-2 (UTL_FINAL) we have Unit_mrl, Ret_val Column Names with Following Data
UNIT_MRL RET_VAL
7
11
16
26
3
Output Result in Table-2 (utl_final) according to following condition
If utl_final.unit_mrl between utl_charges.start_mrl and utl_charges.end_mrl then
utl_final.Ret_val = Utl_charges.value (In case of 7 utl_final.Ret_val = 600 because 7 between 5.1 and 10 in Table-1 (UTL_CHARGES) and so on.
Output will be as follows in Utl_Final table
UNIT_MRL RET_VAL
7 600
11 800
16 1000
26 3000
3 500
TABLE-1
INSERT INTO UTL_CHARGES ( LINE_ID, START_MRL, END_MRL, VALUE ) VALUES (
1, 1, 5, 500);
INSERT INTO UTL_CHARGES ( LINE_ID, START_MRL, END_MRL, VALUE ) VALUES (
2, 5.1, 10, 600);
INSERT INTO UTL_CHARGES ( LINE_ID, START_MRL, END_MRL, VALUE ) VALUES (
3, 10.1, 15, 800);
INSERT INTO UTL_CHARGES ( LINE_ID, START_MRL, END_MRL, VALUE ) VALUES (
4, 15.1, 20, 1000);
INSERT INTO UTL_CHARGES ( LINE_ID, START_MRL, END_MRL, VALUE ) VALUES (
5, 20.1, 25, 2000);
INSERT INTO UTL_CHARGES ( LINE_ID, START_MRL, END_MRL, VALUE ) VALUES (
6, 25.1, 30, 3000);
COMMIT;
TABLE-2 (OUTPUT)
INSERT INTO UTL_FINAL ( UNIT_MRL, RET_VAL ) VALUES (
7, NULL);
INSERT INTO UTL_FINAL ( UNIT_MRL, RET_VAL ) VALUES (
11, NULL);
INSERT INTO UTL_FINAL ( UNIT_MRL, RET_VAL ) VALUES (
16, NULL);
INSERT INTO UTL_FINAL ( UNIT_MRL, RET_VAL ) VALUES (
26, NULL);
INSERT INTO UTL_FINAL ( UNIT_MRL, RET_VAL ) VALUES (
3, NULL);
COMMIT;
Thanx
best regards
[Updated on: Tue, 01 April 2014 12:43] Report message to a moderator
|
|
|
Re: Get value between two fields [message #611345 is a reply to message #611336] |
Tue, 01 April 2014 13:32 |
John Watson
Messages: 8931 Registered: January 2010 Location: Global Village
|
Senior Member |
|
|
I would try an UPDATE with a subquery, structured like this:
update utl_final set ret_val = (select ... from ... where ... > ... and ... <= ... );
have a go at filling the blanks/
|
|
|
|
|
|
|
Goto Forum:
Current Time: Fri Apr 26 17:04:42 CDT 2024
|