Home » SQL & PL/SQL » SQL & PL/SQL » Updating missing values (Oracle 11g)
Updating missing values [message #628499] |
Tue, 25 November 2014 12:35 |
|
ramya_162
Messages: 107 Registered: August 2013 Location: Banglore
|
Senior Member |
|
|
Hi Experts,
I have data in a table as below.
OMERS_NO UNITS_NO BATC_NO SERIES_NO PRODUCTION_START_DT PRODUCTION_END_DT
22338855 1 1 ASMNDSC 06/Oct/14 06/Oct/15
22338855 1 2
22338855 4 1 AQDFHNV 07/Oct/14 07/Oct/15
22338855 4 2
22338855 4 3
22338855 7 2
22338855 7 3
22338855 7 4
22338855 10 1 HKMNBTE 13/Oct/14 13/Oct/15
22338855 11 1 HKMNBTE 13/Oct/14 13/Oct/15
44668899 1 1 ABND3U9 15/Nov/14 15/Nov/16
44668899 1 2 15/Nov/14 15/Nov/16
44668899 2 1 ABND3U9 15/Nov/14 15/Nov/16
44668899 2 2 15/Nov/14 15/Nov/16
66778899 12 1 AQSFCMF 13-Oct-14 13/Oct/15
66778899 12 2 AQSFCMF 13/Oct/14 13/Oct/15
For update I have to consider the records for each OMRS_NO and UNITS_NO morethan one record and with miminum one SERIES_NO is NULL.
In the above data we no need to consider these records for update since at least no one SERIES_NO is NULL.
66778899 12 1 AQSFCMF 13-Oct-14 13/Oct/15
66778899 12 2 AQSFCMF 13/Oct/14 13/Oct/15
I want to update the SERIES_NO,PRODUCTION_START_DT and PRODUCTION_END_DT which are missing for child records
with the parent value in BATCH_QUOTA table.
After update the result would be.
OMERS_NO UNITS_NO BATC_NO SERIES_NO PRODUCTION_START_DT PRODUCTION_END_DT
22338855 1 1 ASMNDSC 06/Oct/14 06/Oct/15
22338855 1 2 ASMNDSC 06/Oct/14 06/Oct/15
22338855 4 1 AQDFHNV 07/Oct/14 07/Oct/15
22338855 4 2 AQDFHNV 07/Oct/14 07/Oct/15
22338855 4 3 AQDFHNV 07/Oct/14 07/Oct/15
22338855 7 2 SDFGO 07/Oct/14 07/Oct/15
22338855 7 3 SDFGO 07/Oct/14 07/Oct/15
22338855 7 4 SDFGO 07/Oct/14 07/Oct/15
22338855 10 1 HKMNBTE 13/Oct/14 13/Oct/15
22338855 11 1 HKMNBTE 13/Oct/14 13/Oct/15
44668899 1 1 ABND3U9 15/Nov/14 15/Nov/16
44668899 1 2 ABND3U9 15/Nov/14 15/Nov/16
44668899 2 1 ABND3U9 15/Nov/14 15/Nov/16
44668899 2 2 ABND3U9 15/Nov/14 15/Nov/16
66778899 12 1 AQSFCMF 13-Oct-14 13/Oct/15
66778899 12 2 AQSFCMF 13/Oct/14 13/Oct/15
I am providing tables and test data.
CREATE TABLE PODUCT_MANFACUTERS
(
OMERS_NO NUMBER(25) NOT NULL,
UNITS_NO NUMBER,
BATC_NO NUMBER(25) NOT NULL,
SERIES_NO VARCHAR2(20 CHAR),
PRODUCTION_START_DT DATE,
PRODUCTION_END_DT DATE
);
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO, SERIES_NO, PRODUCTION_START_DT, PRODUCTION_END_DT)
Values(44668899, 1, 1,'ABND3U9', TO_DATE('11/15/2014 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('11/15/2016 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO, PRODUCTION_START_DT, PRODUCTION_END_DT)
Values(44668899, 1, 2, TO_DATE('11/15/2014 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('11/15/2016 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO, SERIES_NO, PRODUCTION_START_DT, PRODUCTION_END_DT)
Values(44668899, 2, 1, 'ABND3U9', TO_DATE('11/15/2014 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('11/15/2016 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO, PRODUCTION_START_DT, PRODUCTION_END_DT)
Values(44668899, 2, 2, TO_DATE('11/15/2014 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('11/15/2016 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO, SERIES_NO, PRODUCTION_START_DT, PRODUCTION_END_DT)
Values(22338855, 1, 1, 'ASMNDSC', TO_DATE('10/06/2014 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('10/06/2015 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO)
Values(22338855, 1, 2);
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO, SERIES_NO, PRODUCTION_START_DT, PRODUCTION_END_DT)
Values(22338855, 4, 1, 'AQDFHNV', TO_DATE('10/07/2014 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('10/07/2015 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO)
Values(22338855, 4, 2);
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO)
Values(22338855, 4, 3);
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO,SERIES_NO)
Values(22338855, 7, 2,'SDFGO');
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO)
Values(22338855, 7, 3);
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO)
Values(22338855, 7, 4);
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO, SERIES_NO, PRODUCTION_START_DT, PRODUCTION_END_DT)
Values(22338855, 10, 1, 'HKMNBTE', TO_DATE('10/13/2014 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('10/13/2015 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO, SERIES_NO, PRODUCTION_START_DT, PRODUCTION_END_DT)
Values(22338855, 11, 1, 'HKMNBTE', TO_DATE('10/13/2014 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('10/13/2015 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO, SERIES_NO, PRODUCTION_START_DT, PRODUCTION_END_DT)
Values(66778899, 12, 1, 'AQSFCMF', TO_DATE('10/13/2014 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('10/13/2015 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
Insert into PODUCT_MANFACUTERS(OMERS_NO, UNITS_NO, BATC_NO, SERIES_NO, PRODUCTION_START_DT, PRODUCTION_END_DT)
Values(66778899, 12, 2, 'AQSFCMF', TO_DATE('10/13/2014 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('10/13/2015 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
COMMIT;
Please help me.
Thanks.
|
|
|
|
|
Re: Updating missing values [message #628527 is a reply to message #628523] |
Wed, 26 November 2014 01:10 |
|
Michel Cadot
Messages: 68645 Registered: March 2007 Location: Nanterre, France, http://...
|
Senior Member Account Moderator |
|
|
SQL> SELECT * FROM PODUCT_MANFACUTERS
2 ORDER BY OMERS_NO,UNITS_NO,BATC_NO;
OMERS_NO UNITS_NO BATC_NO SERIES_NO PRODUCTION_START_DT PRODUCTION_END_DT
---------- ---------- ---------- -------------------- ------------------- -------------------
22338855 1 1 ASMNDSC 06/10/2014 00:00:00 06/10/2015 00:00:00
22338855 1 2
22338855 4 1 AQDFHNV 07/10/2014 00:00:00 07/10/2015 00:00:00
22338855 4 2
22338855 4 3
22338855 7 2 SDFGO
22338855 7 3
22338855 7 4
22338855 10 1 HKMNBTE 13/10/2014 00:00:00 13/10/2015 00:00:00
22338855 11 1 HKMNBTE 13/10/2014 00:00:00 13/10/2015 00:00:00
44668899 1 1 ABND3U9 15/11/2014 00:00:00 15/11/2016 00:00:00
44668899 1 2 15/11/2014 00:00:00 15/11/2016 00:00:00
44668899 2 1 ABND3U9 15/11/2014 00:00:00 15/11/2016 00:00:00
44668899 2 2 15/11/2014 00:00:00 15/11/2016 00:00:00
66778899 12 1 AQSFCMF 13/10/2014 00:00:00 13/10/2015 00:00:00
66778899 12 2 AQSFCMF 13/10/2014 00:00:00 13/10/2015 00:00:00
16 rows selected.
SQL> select OMERS_NO, UNITS_NO, BATC_NO,
2 last_value(SERIES_NO ignore nulls) over (order by OMERS_NO,UNITS_NO,BATC_NO) SERIES_NO,
3 last_value(PRODUCTION_START_DT ignore nulls) over (order by OMERS_NO,UNITS_NO,BATC_NO) PRODUCTION_START_DT,
4 last_value(PRODUCTION_END_DT ignore nulls) over (order by OMERS_NO,UNITS_NO,BATC_NO) PRODUCTION_END_DT
5 FROM PODUCT_MANFACUTERS
6 ORDER BY OMERS_NO,UNITS_NO,BATC_NO;
OMERS_NO UNITS_NO BATC_NO SERIES_NO PRODUCTION_START_DT PRODUCTION_END_DT
---------- ---------- ---------- -------------------- ------------------- -------------------
22338855 1 1 ASMNDSC 06/10/2014 00:00:00 06/10/2015 00:00:00
22338855 1 2 ASMNDSC 06/10/2014 00:00:00 06/10/2015 00:00:00
22338855 4 1 AQDFHNV 07/10/2014 00:00:00 07/10/2015 00:00:00
22338855 4 2 AQDFHNV 07/10/2014 00:00:00 07/10/2015 00:00:00
22338855 4 3 AQDFHNV 07/10/2014 00:00:00 07/10/2015 00:00:00
22338855 7 2 SDFGO 07/10/2014 00:00:00 07/10/2015 00:00:00
22338855 7 3 SDFGO 07/10/2014 00:00:00 07/10/2015 00:00:00
22338855 7 4 SDFGO 07/10/2014 00:00:00 07/10/2015 00:00:00
22338855 10 1 HKMNBTE 13/10/2014 00:00:00 13/10/2015 00:00:00
22338855 11 1 HKMNBTE 13/10/2014 00:00:00 13/10/2015 00:00:00
44668899 1 1 ABND3U9 15/11/2014 00:00:00 15/11/2016 00:00:00
44668899 1 2 ABND3U9 15/11/2014 00:00:00 15/11/2016 00:00:00
44668899 2 1 ABND3U9 15/11/2014 00:00:00 15/11/2016 00:00:00
44668899 2 2 ABND3U9 15/11/2014 00:00:00 15/11/2016 00:00:00
66778899 12 1 AQSFCMF 13/10/2014 00:00:00 13/10/2015 00:00:00
66778899 12 2 AQSFCMF 13/10/2014 00:00:00 13/10/2015 00:00:00
16 rows selected.
|
|
|
|
|
|
|
|
|
|
|
Goto Forum:
Current Time: Fri Apr 26 00:09:21 CDT 2024
|