Updating a Table using grouping logic

Hi,
I have a requirement
There is table table_a
create table table_a
code number,
name varchar2(50),
city varchar2(50),
state varchar2(20),
group_id
insert into table_a
values
1,'ABC','A;,'A1');
insert into table_a
values
1,'BCD','A;,'A1');
insert into table_a
values
2,'ABC','A;,'A1');
insert into table_a
values
2,'ABE','A;,'A1');
insert into table_a
values
3,'ABF','A;,'A1');
insert into table_a
values
3,'ABH','A;,'A1');
I need to group the above table values
select code,name,city,dept from table_a
group by code,name,city,state
I need to update the table_a based on the groups above through a cursor
I want to update table_a
update table_a set group_id (based on the group valuse from the cursor)
How to approach for the scenario.Any suggestion for this

Hi,
One last Query based on the Query you have posted:
If  I go with the Updated Query
MERGE INTO  table_a    dst
USING  (
           SELECT    name, city, state
           ,         ROW_NUMBER () OVER (ORDER BY name, city, state)
                         AS group_id
           FROM      table_a
           GROUP BY  name, city, state
       )               src
ON     (    dst.name  || 'x'  = src.name  || 'x'     -- CHANGED
       AND  dst.city  || 'x'  = src.city  || 'x'     -- CHANGED
       AND  dst.state || 'x'  = src.state || 'x'     -- CHANGED
WHEN MATCHED THEN UPDATE
SET    dst.group_id  = src.group_id
Now the Records are updated in the table With Group_id Column based on Grouping Logic thats fine
But if after some couple of days there might be new set of rows.Then How the Group values will be maintained?(The above group can contain new rows also.So how the table_a will be updated if there are already GROUP_ID values for example 1.2,3,4 etc)
SELECT    name, city, state
           ,         ROW_NUMBER () OVER (ORDER BY name, city, state)
                         AS group_id
           FROM      table_a
           GROUP BY  name, city, state

Similar Messages

  • How to Update  crmd_customer_h TABLE Using CRMV_EVENT Through Funtion Module

    Hi
    How we can update customer_h table using the CRMV_EVENT Where i implemented logic below in the Funtion Module.
    data:     lt_doc_flow          TYPE crmt_doc_flow_wrkt,
              lw_cust_h_com        TYPE crmt_customer_h_com,
              lw_input_field_names TYPE crmt_input_field_names,
              lt_input_field_names TYPE crmt_input_field_names_tab,
              lt_objects_to_save TYPE crmt_object_guid_tab,
              lw_guid TYPE CRMT_OBJECT_GUID.
    DATA : lv_process_type TYPE crmt_process_type.
    data: wa_doc_flow type CRMT_DOC_FLOW_WRK.
    data: wa_customer_h type crmd_customer_h.
    *  Function module for retriving the Process type.
      CALL FUNCTION 'CRM_ORDERADM_H_READ_OW'
        EXPORTING
          iv_orderadm_h_guid     = iv_header_guid
        IMPORTING
          ev_process_type        = lv_process_type
        EXCEPTIONS
          admin_header_not_found = 1
          OTHERS                 = 2.
    if lv_process_type eq 'ZG01'.
    CALL FUNCTION 'CRM_DOC_FLOW_READ_OB'
    EXPORTING
       IV_HEADER_GUID                 = iv_header_guid
    IMPORTING
       ET_DOC_FLOW_WRK                = lt_doc_flow.
    read table lt_doc_flow with key objtype_a = 'BUS2000116' INTO wa_doc_flow. "gc_object_type-service.
                if sy-subrc eq 0.                    "set flag for service order
                lw_cust_h_com-ref_guid       =  wa_doc_flow-objkey_a.
                lw_cust_h_com-ZZTRAIL_FLAG   = 'X'.
                 lw_cust_h_com-mode           = 'A'.
                lw_cust_h_com-ref_handle     = '0000000001'.
                lw_guid = wa_doc_flow-objkey_a.
                INSERT lw_guid INTO TABLE lt_objects_to_save.
         endif.
                  lw_input_field_names-fieldname = 'REF_GUID'.
                lw_input_field_names-fieldname = 'ZZTRAIL_FLAG'.
              lw_input_field_names-changeable = ' '.
               INSERT lw_input_field_names INTO TABLE lt_input_field_names.
    Maintain Customer H
             CALL FUNCTION 'CRM_CUSTOMER_H_MAINTAIN_OW'
                  EXPORTING
                    is_customer_h_com    = lw_cust_h_com
                  CHANGING
                    ct_input_field_names = lt_input_field_names
                  EXCEPTIONS
                    header_change_error  = 1
                    header_create_error  = 2
                   error_occurred       = 3.
    ENDIF.
    *endif.
    *Clearing local variables
      clear: lv_process_type,
             lw_cust_h_com,
             lw_input_field_names.
    *Free internal tables
      free: lt_doc_flow,
            lt_input_field_names.

    Hi Faisal
    I think your not clear with what i am saying anyhow i will again explain you my requirement
    As per my requirement
    1)in the service order search report i need to add a field called "Has trail order with No Follow up" with values "Yes" & "Blank"
    For above Field i added  using the structure CRMST_QUERY_SRVO_BTIL and through configuration i am able to display the field in webui as per (Attachement Pic 1)
    2)When i  search with search criteria as  "Has trail order with No Follow up" with  "Yes"
    Then in result list i need to show the service order those having follow up as trail orders(sales order) only.if for  next document trail order  having any follow up then those service orders dont want to show in result list.
    For above requirement i implemented F.M using CRMV_EVENT & I configured for BUS2000115 And BEFORE_SAVE The Order
    The FM Will get trigger when i save the service order and for that service order if create any follow up and try to save the trail order then This FM Will trigger and in this i am doing validations.
    3)Add one AET Trail Flag field is added under CUSTOMER_H Table.
    4)in the FM I am validating for if the trail order having the preceding document as service order then i need to make flag as "X" For that service order in customer_h
    if suppose when i delete trail order from the service order then that flag must need to be "unset" from the CUSTOMER_H.
    Why bcoz we are doing above process is do show records in result list based on Flag values
    these flag checks are validating in the BADI Which we implemented for search logic.
    Please refer below Login for my requirement:-
    Proposal to have a custom “flag” field (background at table level,
         crmd_customer_h) linked to service order which gets flagged whenever at
         least one Trial order is created and saved from the Service Order.
    The flag value should be cleared when all the trial orders created and
    saved as follow up transactions are deleted from the system.
    Similarly for Trial Orders will use the same custom “flag” field
         which gets activated when at least one follow up is created and saved from Trial Order.
    The flag value should be cleared when all the follow up transactions from
    the Trial Order are deleted from the system.
    When the above search criteria “Has Trial order with no follow up”
         “is” “Yes” is applied then the logic derives all the service
         orders which satisfy additional search criteria applied in the search and
         for these Service orders checks if the custom flag field is checked to
         derive all Service orders which have Trial order. The custom flag values
         values are derived from crmd_customer_h table in CRM.
    4 )Further for all the Trial Orders determined in Step 3
    check if the Trial Order has a follow up by checking if the custom flag field
    is checked. The custom flag values are derived from crmd_customer_h table in
    CRM.
    5) If step 4 is not met populate the preceding Service
    Orders in the Result list

  • Update a table using OWB

    Hi All,
    I have a unique requirement where the data comes from two different sources using the following cases in perspective
    - Table A and Table B have common ID's but different information regarding the same entity.
    - Table A has the commanding records going into the target table and table B fills in some other details not available in table A.
    so in essence I am merging data which can be accomplished by UPDATE/INSERT ....How ever I am constrained by the date element , data from table B merges in to the target table different for a given period of time , so what I have done is created a bunch of mappings just to update the table with the logic for the different years and I am using the UPDATE operator to update the records and mapping is taking a long time , just to update 122,360 records the mapping has been running for about 2 hours.
    Any suggestions on how to better approach this?
    Regards,
    Malam

    Hi Malam,
    there is no simple answer to your question. Maybe SQL tuning is the most complex subject for relational databases.
    For example of successful SQL tuning look at this thread Hanging deployment
    Regards,
    Oleg

  • Code to update a table using sqlldr

    Hi all,
    can anybody give the code to update a table using sqlldr with an example
    thank you

    You want add the new line and modified the existing line (based on empno) from file e:\scripts\sql\emp2_ext.dat into table emp2 :
    7782,CLARK,MANAGER,7839,09/06/81,80000,,10
    8000,ORACLE,DATABASE,,11/02/07,99999,,20Then :
    SQL> conn system/mypwd
    Connected.
    SQL>
    SQL> create directory my_dir as 'e:\scripts\sql';
    Directory created.
    SQL>
    SQL> grant read,write on directory my_dir to scott;
    Grant succeeded.
    SQL>
    SQL> conn scott/mypwd
    Connected.
    SQL> create table emp2_ext
      2  (EMPNO    NUMBER(4),
      3   ENAME    VARCHAR2(10),
      4   JOB      VARCHAR2(9),
      5   MGR      NUMBER(4),
      6   HIREDATE DATE,
      7   SAL      NUMBER(7,2),
      8   COMM     NUMBER(7,2),
      9   DEPTNO   NUMBER(2)
    10  )     
    11  ORGANIZATION EXTERNAL
    12  ( TYPE ORACLE_LOADER
    13    DEFAULT DIRECTORY my_dir
    14    ACCESS PARAMETERS
    15    ( records delimited by newline
    16      badfile my_dir:'emp2_ext.bad'
    17      logfile my_dir:'emp2_ext.log'
    18      fields terminated by ','
    19      missing field values are null
    20      ( empno, ename, job, mgr, hiredate char date_format date mask "dd/mm/yy",
    21        sal, comm, deptno
    22      )
    23    ) LOCATION ('emp2_ext.dat')
    24  ) ;
    Table created.
    SQL>
    SQL> select * from emp2_ext;
         EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
          7782 CLARK      MANAGER         7839 09/06/81      80000                    10
          8000 ORACLE     DATABASE             11/02/07      99999                    20
    SQL> select * from emp2;
         EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
          7782 CLARK      MANAGER         7839 09/06/81      24500                    10
          7839 KING       PRESIDENT            17/11/81      50000                    10
          7934 MILLER     CLERK           7782 23/01/82      13000                    10
    SQL> merge into emp2 a
      2  using (select * from emp2_ext) b
      3  on    (a.empno=b.empno)
      4  when matched then update set a.ename=b.ename,
      5                               a.job=b.job,
      6                               a.mgr=b.mgr,
      7                               a.hiredate=b.hiredate,
      8                               a.sal=b.sal,
      9                               a.comm=b.comm,
    10                               a.deptno=b.deptno
    11  when not matched then insert (a.empno, a.ename, a.job, a.mgr, a.hiredate, a.sal, a.comm, a.deptno)
    12                        values (b.empno, b.ename, b.job, b.mgr, b.hiredate, b.sal, b.comm, b.deptno);
    2 rows merged.
    SQL>
    SQL> select * from emp2;
         EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
          7782 CLARK      MANAGER         7839 09/06/81      80000                    10 --modified line
          7839 KING       PRESIDENT            17/11/81      50000                    10
          7934 MILLER     CLERK           7782 23/01/82      13000                    10
          8000 ORACLE     DATABASE             11/02/07      99999                    20 --added line
    SQL> HTH,
    Nicolas.
    Well, Hans has already give good explanation with docs links...
    Message was edited by:
    N. Gasparotto

  • Updating EKKO table using E1BPPAREX

    Hi all,
    My requirement is to update ekko table using E1BPPAREX segement. I have gone through so many posts regarding this.
    In my case, PO number is not yet created. I am using BAPI_PO_CREATE1 for creating this . From PI side, if they pass the custom field value in the appropriate postion of VALUEPART field of E1BPPAREX, will it get updated to the ekko table automatically.
    Regards,
    Sajith

    Hi Sajith,
      you have to do is populate structure extensionin. You'll have to implement the fm DDIF_NAMETAB_GET to look for the right place (offset) in order to add the field on the structure extension in.
    Example:
      CALL FUNCTION 'DDIF_NAMETAB_GET'
        EXPORTING
          tabname   = c_ext_table   --> ''BAPI_TE_MEPOHEADER
        TABLES
          dfies_tab = lt_tab
        EXCEPTIONS
          not_found = 1
          OTHERS    = 2.
      CLEAR l_offset.
      LOOP AT lt_tab.
        CASE lt_tab-fieldname.
          WHEN c_yourfield.
            w_extin-valuepart1+l_offset = p_yourfield.
        ENDCASE.
        ADD lt_tab-leng TO l_offset.
      ENDLOOP.
      MOVE c_ext_table TO w_extin-structure.
      APPEND w_extin TO p_i_extin.
    Regards,
    Carlos.

  • Updating multiple tables using JDBC Adapter

    Hi,
    I am trying to insert/update multiple tables using one message via JDBC adapter. The following is the message being posted. However, only the first statement was executed. Anything wrong?
    Thanks in advance!
    Hart
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:DeliveryDBUpdate xmlns:ns0="http://test.com/r3_integration"><DeliveryData><DelHeader action="UPDATE_INSERT"><table>DelHeader</table><access><DelNo>0080000230</DelNo><DelType>LF</DelType><XOverwrite>X</XOverwrite><ShipTo>0000000026</ShipTo><SoldTo>0000000026</SoldTo><Priority>00</Priority><DocDate>02/17/2007</DocDate><GText>CIF Test</GText><DelDate>02/20/2007</DelDate><PickDate>02/20/2007</PickDate><ShipPoint>NO02</ShipPoint><PackCount>00000</PackCount></access><key><DelNo>0080000230</DelNo></key></DelHeader>
    <DelItem action="INSERT"><table>DelItem</table><access><DelNo>0080000230</DelNo><ItemNo>000010</ItemNo><GText>10# GRAN-GREAT VALUE</GText><Material>G04410G611</Material><Plant>6005</Plant><SLoc>6005</SLoc><RefDoc>mmenon32</RefDoc><RefItem>00000000</RefItem><DelQty>5.000</DelQty><UOM>BL</UOM></access><access><DelNo>0080000230</DelNo><ItemNo>000020</ItemNo><GText>25# GRAN- GREAT VALUE</GText><Material>G04025G611</Material><Plant>6005</Plant><SLoc>6005</SLoc><RefDoc>mmenon32</RefDoc><RefItem>00000000</RefItem><DelQty>5.000</DelQty><UOM>BG</UOM></access></DelItem></DeliveryData></ns0:DeliveryDBUpdate>

    Hi,
    You need 2 STATEMENT level tags,
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:DeliveryDBUpdate xmlns:ns0="http://test.com/r3_integration">
    <b><DeliveryData1></b>
    <DelHeader action="UPDATE_INSERT">
    <table>DelHeader</table>
    <access>
    <DelNo>0080000230</DelNo>
    <DelType>LF</DelType>
    <XOverwrite>X</XOverwrite>
    <ShipTo>0000000026</ShipTo>
    <SoldTo>0000000026</SoldTo>
    <Priority>00</Priority>
    <DocDate>02/17/2007</DocDate>
    <GText>CIF est</GText>
    <DelDate>02/20/2007</DelDate>
    <PickDate>02/20/2007</PickDate>
    <ShipPoint>NO02</ShipPoint>
    <PackCount>00000</PackCount>
    </access>
    <key>
    <DelNo>0080000230</DelNo>
    </key>
    </DelHeader>
    <b><DeliveryData1></b>
    <b><DeliveryData2></b>
    <DelItem action="INSERT">
    <table>DelItem</table>
    <access>
    <DelNo>0080000230</DelNo>
    <ItemNo>000010</ItemNo>
    <GText>10# GRAN-GREAT VALUE</GText>
    <Material>G04410G611</Material>
    <Plant>6005</Plant>
    <SLoc>6005</SLoc>
    <RefDoc>mmenon32</RefDoc>
    <RefItem>00000000</RefItem>
    <DelQty>5.000</DelQty>
    <UOM>BL</UOM>
    </access>
    <access>
    <DelNo>0080000230</DelNo>
    <ItemNo>000020</ItemNo>
    <GText>25# GRAN- GREAT VALUE</GText>
    <Material>G04025G611</Material>
    <Plant>6005</Plant>
    <SLoc>6005</SLoc>
    <RefDoc>mmenon32</RefDoc>
    <RefItem>00000000</RefItem>
    <DelQty>5.000</DelQty>
    <UOM>BG</UOM>
    </access>
    </DelItem>
    <b></DeliveryData2></b>
    </ns0:DeliveryDBUpdate>
    Try with such a strcuture and let us know if it works.
    Regards
    Bhavesh

  • Update a table using MODIFY

    Hi,
    We need your help.
    We want to update a table using the MODIFY command but it does not delete the previous entries instead it INSERTs a new entry.
    Scenario:
    1. Upon calling the Screen for Editing the entry, the previous entry must be deleted
    2. When SAVEd, the new entry must replace the previous entry.

    Make sure that in the definition or your table you have specified the key. Otherwise, the system may "think" that all the fields are part of the key, therefore all lines are different.
    This is a extract from SAP's documentation:
    "The line to be changed is determined by the fact that the content of the table key matches the content of the corresponding components in the wa work area. For tables with a key that is not unique, the first entry that is found is changed. "
    Regards.

  • How to find max(time) from table using group by

    how to find max(time) from table using group by
    select var max(time)
              from table
              into (var1, time1)
               where .....
                 group by var.
    it is fetching record which is top in table.
    if u can help?
    regards.

    No this will fetch the maximum time from teh table.
    select var max(time)
    from table xxxx
    into (var1, time1)
    where .....
    group by var.
    Refer this code
    TABLES SBOOK.
    DATA:  COUNT TYPE I, SUM TYPE P DECIMALS 2, AVG TYPE F.
    DATA:  CONNID LIKE SBOOK-CONNID.
    SELECT CONNID COUNT( * ) SUM( LUGGWEIGHT ) AVG( LUGGWEIGHT )
           INTO (CONNID, COUNT, SUM, AVG)
           FROM SBOOK
           WHERE
             CARRID   = 'LH '      AND
             FLDATE   = '19950228'
           GROUP BY CONNID.
      WRITE: / CONNID, COUNT, SUM, AVG.
    ENDSELECT.

  • Updating JOIN tables in ALDSP Logical View

    I've got a logical view which has 3 physical data services in it, representing relational tables in Oracle. The 3 tables are Person(Primary key=PersonID), Address (primary key=AddressID), and a JOIN table which contains PersonID and AddressID. I am able to successfully perform "gets" and "creates" using the logical view, however I have an issue when I try to UPDATE a person by adding a new address record. When I try this from the Test tab in the DSP Studio, I can see that the product inserts a new record to the Address table and then tries to insert a record into the PERSON_ADDRESS table, but it doesn't include the ADDRESS_ID column in the insert so it fails cause that is a non-null column.
    Do you know if it is possible to do this? Has anyone had any experience with a similar situation? I attached a couple screenshots of the DSP logical view.
    Any help would be appreciated.
    Thanks,
    Chris
    Additional notes:
    - The primary keys in the Person and Address table are autogenerated via a SEQUENCE. I have setup the physical services corresponding to each table such that the primary key is qualified as a Sequence column, and specified the Sequence name.

    One additional note on this issue. When I test the Update method using the Test tab in ALDSP 3.0, if I specify an AddressId when adding a new Address, the process works fine and creates the Address record as well as the Person_Address record correctly. It seems that the issue only occurs when I leave the AddressId empty and let the process populate it using the Oracle SEQUENCE I specified on the physical Address (AddressId) service. When I leave it empty, the DSP correctly generates an AddressId and inserts it into the Address table, it just doesn't attempt to insert the new AddressId into the Person-Address record.

  • Help on Updating master table using SAP NetWeaver 2004s

    Dear BSP ians,
    I need to edit,modify multiple records and has to be updated in the master table using MVC. We are using SAP NetWeaver 2004s.
    We have gone through the sample codings which is present in the forum already, and we have worked out using Pages with Flow Logic on ECC 6.0 and those are not getting exexcuted for "SAP NetWeaver 2004s".
    Help me in this issue.
    Points will be rewarded for helpful infos.
    Gokul.N

    My issue is, the sample codes present alreaady in the forums works in ECC 6.0
    But we are using  "SAP Netweaver 2004s"

  • Updating a table using cursor is taking long time in oracle

    Hi,
    I am working on the oracle database 11gR2. I am trying update a table column which is newly added through cursor. below is the cursor.
    BEGIN
         FOR lcur_tab IN (select l.LOGIN_ID as login_id, lt.ERROR_CODE as error_code from LOGIN l INNER JOIN LOGIN_TASK lt ON (l.LAST_LOGIN_TASK_ID = lt.LOGIN_TASK_ID) )
         LOOP
                   UPDATE ACCOUNT SET LOGIN_ERROR_CODE = lcur_tab.error_code where ACCOUNT_ID IN (SELECT ACCOUNT_ID FROM LOGIN_ACCOUNT where LOGIN_ID = lcur_tab.login_id ) ;
         end LOOP;
         commit;
    END;
    In the cursor we are trying to copy the Login table error_code value to LOGIN_ERROR_CODE of ACCOUNT Table, for the accounts associated with that Login. Here newly added column is LOGIN_ERROR_CODE in account table. this account table have 11million rows in it. when i used the above cursor it took 3hours and still running. So we stopped after that. Is there any way i can change this cursor syntax to update those column values. How can we do this type of updates?
    Also i am planning to run thus update in the background . I don't have much knowledge on the PL/SQL stuff. So please help on this.
    Thanks in advance.
    Edited by: Hari on Mar 21, 2012 10:06 PM

    Is there a reason that you don't want to do this with a single `UPDATE` statement? That should be quite a bit more efficient.
    Something like
    UPDATE account a
       SET login_error_code = (
          select lt.error_code
            from login_task lt
                 join login l on (l.last_login_task_id = lt.login_task_id)
                 join login_account la on (la.login_id = l.login_id)
           where la.account_id = a.account_id )
    WHERE EXISTS (
          select 1
            from login_task lt
                 join login l on (l.last_login_task_id = lt.login_task_id)
                 join login_account la on (la.login_id = l.login_id)
           where la.account_id = a.account_id );Justin

  • Update Mseg Table using MB_MIGO_BADI

    Hi Experts
    I had a requirement to add an additional tabstrip at the item level of MIGO transaction .
    I have implmeented the same using MB_MIGO_BADI .
    I have also added a field quantity on this tab.
    The problem now is i'm not able to update this field in the MSEG table.
    I have extended the MSEG table using append structures.
    Regards,
    Sunitha.
    Edited by: sunitha j on Mar 1, 2009 2:34 PM

    check whehter the added field is getting the data that you enter in the trnasaction in debug mode and whether the move of the data is happening...
    Regards,
    Sravan.

  • Updating a table using a custom OM infotype

    Hey gurus,
    I have created a custom OM infotype HRP9608. I wish to use this infotype to update a table.
    I marked it as an external, country specific infotype and blanked out the Database table from SM30 (table T777D)
    I have also blanked out the FM. for tab name using SM30 (table T77ID) and added in Read Function and Primary Table.
    The infotype gets created correctly, but when i add it as an external infotype the screen changes. Can someone please provide me with a solution.
    Thanks.

    Hi,
    See the given link, It may help you.
    https://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=64259392
    Regards,
    Shamma

  • Updating lookup table using merge query

    Hi Experts,
    My requirement is, we have total 4 tables called x,y,z and a_lookup table. join column between all these tables is deptno.
    I need to update a_lookup table based on below conditions
       condition1 :   Update a_lookup table with matched records of X and Y
       condition2:    If there is any record in X is not matching with Y, then we need to compare with Z and update the a_lookup table accordingly
    Here is the table scripts and my attempt as well.
    Only doubt is,  is my MERGE statement looks fine or is there any other better way to update the a_lookup table ?
    Please share your thoughts on this.
    create table x(empno number, deptno number);
      -- sample data
      insert into x
        select level, level * 10 from dual connect by level <= 10;
      create table y(empno number, deptno number);
      -- sample data
      insert into y
        select level, level * 10 from dual connect by level <= 5;
      create table z(empno number, deptno number);
      -- sample data
      insert into z
        select level, level * 10 from dual connect by level <= 10;
      create table a_lookup(empno number, deptno_lookup number);
      -- sample data
      insert into a_lookup
        select null, level * 10 from dual connect by level <= 10;
      -- Merging records into a_lookup based on X,Y,Z. Used right outer join on X and Y
    merge into a_lookup a
    using ( (select  x.deptno,x.empno   from x,y where x.deptno=y.deptno)
               union all
               (select z.deptno,z.empno from z, (select x.deptno from x,y where x.deptno=y.deptno and y.deptno is null)  res1
                  where z.deptno = res1.deptno)
               ) res
    on( a.deptno_lookup = res.deptno)
    when matched then
      update set a.empno = res.empno;
    Cheers,
    Suri ;-)

    Assuming empno is unique in X, Y and Z:
    merge
      into a_lookup a
      using (
             select  nvl(y.empno,z.empno) empno,
                     x.deptno
               from  x,
                     y,
                     z
               where y.deptno(+) = x.deptno
                 and z.deptno(+) = x.deptno
            ) b
      on (
              a.deptno_lookup = b.deptno
          and
              b.empno is not null
      when matched
        then
          update
             set a.empno = b.empno
    10 rows merged.
    SCOTT@orcl > select * from a_lookup;
         EMPNO DEPTNO_LOOKUP
             1            10
             2            20
             3            30
             4            40
             5            50
             6            60
             7            70
             8            80
             9            90
            10           100
    10 rows selected.
    SCOTT@orcl >
    SY.

  • Updating a Table using Spreadsheet

    Hi,
    There are a couple tables that I would like to update regularly, like once every week. Instead of adding new rows, how can I update the tables by uploading CSV files using the Upload Utilities?
    Thank you very much for your help in advance!

    Here is an easier solution..
    1) Have you DBA create an Oracle directory on the server (it is created in Oracle and maps to a operating system directory.
    2) Create a external table in that directory, have it have the same layout as your spreadsheet
    3) Now when you build the external table, give it the name of the spreadsheet file
    4) You can then copy the file to the directory
    5) Write a small pl/sql script to select from the external table and do a merge of the data selected into the existing table (See merge command syntax here: http://www.oracle.com/technology/products/oracle9i/daily/Aug24.html)
    Thank you,
    Tony Miller
    Webster, TX

Maybe you are looking for

  • What does this message mean: "power pc applications are no longer supported"?

    What does this message mean: you can not start because power pc applications are no longer supported?

  • Problem with two of my business rule triggers

    Good morning every one, I have a small problem with two of my business rule triggers. I have these tables: pms_activity csh_cash csh_integrate_leh csh_integrate_led and my process goes like this: upon approval of a row in my pms_activity table I have

  • Clipboard broken in iOS 8

    ok this has been happening since iOS 8 got released, and is still happening with 8.1 It generally begins with copying a link from Safari, either by using the copy button at the bottom of the browser or copying the link directly in the navigation bar.

  • Ora-13497 during SDO_GEOR.MOSAIC

    we are testing sdo_geor.mosaic on 2 georasters but we get this error: SQL> DECLARE 2 GR SDO_GEORASTER; 3 BEGIN 4 GR := SDO_GEOR.INIT('MO'); 5 SDO_GEOR.MOSAIC('GEORASTER_TABLE', 'GEORASTER', GR, NULL); 6 INSERT INTO MO (GEORASTER) VALUES (GR); 7 COMMI

  • Is SSO Mandatory for ESS with ECC5.0?

    Is single sign on MAndatory for implementing ESS with SP16 ECC5.0 and mysap ERP2004 package . Becuase am not finding any options to map users for systems? inputs highly appreciated.