Inserting rows from a table

Hi
I have A table with the following structure:
-category- -id_no- -class_com-
06 23 45678
06 23 32345
06 23 45345
05 24 (null)
07 25 (null)
08 26 (null)
I would like to insert the three values in class_com into the same table and for each category 05, 07, and 08.
The table would be like this:
-category- -id_no- -class_com-
06 23 45678
06 23 32345
06 23 45345
05 24 45678
05 24 32345
05 24 45345
07 25 45678
07 25 32345
07 25 45345
08 26 45678
08 26 32345
08 26 45345
Thanks
stone

Hi,
Try this one
create table a(category number,id_no number,class_com number);
insert into a values(06,23,45678);
insert into a values(06,23,32345);
insert into a values(06,23,45345);
insert into a values(05,24,null);
insert into a values(07,25,null);
insert into a values(08,26,null);
update a set class_com = 45678 where category in(5,7,8);
insert into a values(05,24,32345);
insert into a values(05,24,45345);
insert into a values(07,25,32345);
insert into a values(07,25,45345);
insert into a values(08,26,32345);
insert into a values(08,26,45345);
Regards,
Fame

Similar Messages

  • Cannot delete newly inserted row from a table

    Dear all,
    There is a table where I have just inserted a new record. I can do a select query on that record and even update it. However when I try to delete the record, my session hangs and the record does not gets deleted. I also do not get a error message.
    Does anyone knows what the problem could be ?
    Thanks in advance
    L

    How many rows are in that table?
    from another session, what is that session waiting on?
    select sid, event, total_waits, time_waited, round(average_wait,4) as average_wait
    , (round( (time_waited/m_sum), 4)*100)|| '%' as pct_tot_wait
    from v$session_event, (
    select sum(time_waited) m_sum
    from v$session_event
    where sid = <sid_of_hanging_session>
    ) s
    where sid = <sid_of_hanging_session>
    order by 4 desc;

  • Insert missing rows from another table

    Hi
    I need to insert rows from another table if there is gaps in my transaction table. For each ärendenr there should be 5 Id status rows (1-5). Except for the fact that the inserted rows never should have higher IdStatus number then the highest value from
    the transaction for each Ärendenr. See my example below that illustrates my transaction table, Stages master and the desired result.
    Is there some t sql code that could handle this problem?
    Best regards
    Arne
    So far i have tried to solve this with the code below but it doesnt work.
    I have copied the transaction file information to the TempLogTransTimes
    and then insert into LogTransTimes
    IF OBJECT_ID('dbo.TempLogTransTimes', 'U') IS NOT NULL --Här raderas den tillfälliga tabellen
    DROP TABLE dbo.TempLogTransTimes;
    SELECT *
    INTO TempLogTransTimes
    FROM LogTransTimes
    DECLARE @TopÄrende INT
    WHILE EXISTS(SELECT * FROM TempLogTransTimes)
    BEGIN
    SET @TopÄrende = (SELECT TOP(1) Ärendenr FROM TempLogTransTimes ORDER BY Ärendenr)
    INSERT INTO LogTransTimes(Ärendenr, IdStatus, StatusNamn, SourceId)
    SELECT @TopÄrende, SM.IdStatus, SM.StatusNamn, 'Beräkning'
    FROM Statusmall SM
    FULL JOIN TempLogTransTimes LT ON SM.IdStatus = LT.IdStatus
    WHERE LT.IdStatus IS NULL
    DELETE TempLogTransTimes WHERE Ärendenr = @TopÄrende
    END
    Arne Olsson

    Hi Arne Olsson, try this..
    DECLARE @Transactions TABLE
    Id1 INT,
    IdStatus INT,
    StatusName VARCHAR(10)
    DECLARE @Stages TABLE
    IdStatus INT,
    StatusName VARCHAR(10)
    INSERT INTO @Transactions VALUES(1,1,'AA'), (1,3,'CC'), (1,5,'EE'), (2,1,'AA'), (2,3,'CC')
    INSERT INTO @Stages VALUES (1,'AA'), (2,'BB'), (3,'CC'), (4,'DD'), (5,'EE')
    ;WITH CTE AS(SELECT DISTINCT Id1 FROM @Transactions)
    SELECT Id1, IdStatus, StatusName FROM CTE, @Stages
    EXCEPT
    SELECT Id1, IdStatus, StatusName FROM @Transactions
    Please mark as answer, if this has helped you solve the issue.
    Good Luck :) .. visit www.sqlsaga.com for more t-sql code snippets and BI related how to articles.

  • Insert rows from l_qte_rec in to tmp table

    xxx_pre_update_userbook(p_service_request_id number, p_sr_type_id number, p_status_id number,
                             p_resolution_code varchar2, p_bill_to_customer_id number,
                        p_bill_to_cust_account_id number, p_bill_to_customer_site_id number,
                        p_contract_id number, p_contract_line_id number,
                        p_resolution_summary varchar2,
                             x_status out varchar2, x_mesg out varchar2) as
              l_proj_incident_type_id number;
              l_isr_incident_type_id number;
              l_tac_incident_type_id number;
              l_status varchar2(10) := 'S';
              l_sr_closing_flag number;
              l_mesg varchar2(3000) := null;
              err_mesg varchar2(3000) := null;
              L_SO_ID NUMBER;
              L_LINK_REC CS_INCIDENTLINKS_PUB.CS_INCIDENT_LINK_REC_TYPE;
              L_OBJECT_VERSION_NUMBER NUMBER;
              L_RECIPROCAL_LINK_ID NUMBER;
              L_LINK_ID NUMBER;
         l_QTE_REC ASO_QUOTE_PUB.qte_header_rec_type;          
         l_control_REC ASO_ORDER_INT.control_rec_type;          
              l_Order_Header_Rec ASO_ORDER_INT.Order_Header_Rec_Type;
              l_Order_Line_Tbl ASO_ORDER_INT.Order_Line_Tbl_type;
              l_Return_Status VARCHAR2(30);
              l_Msg_Count NUMBER;
              l_Msg_Data VARCHAR2(3000);
              l_Msg_INDEX_OUT NUMBER;
              l_OUT_MESSAGE VARCHAR2(3000);
              l_proj_flag number;
              l_quote_status_id number;
              l_orders_created number;
              l_chargeable_sr_flag number;
              l_sr_close_flag number;
              l_invalid_outage_info number;
         begin
              l_status := 'S';
              l_mesg := null;
              -- MO_GLOBAL.INIT('CS');
              -- Get the Project Service Request Id
              select incident_type_id into l_proj_incident_type_id
              from cs_incident_types_tl
              where name like 'XXX TAC Project'
    --           and language = 'US'
              and rownum < 2;
              -- Get the ISR Service Request Id
              select incident_type_id into l_isr_incident_type_id
              from cs_incident_types_tl
              where name like 'XXX TAC ISR'
    --           and language = 'US'
              and rownum < 2;
              -- Get the TNT TAC Service Request Id
              select incident_type_id into l_tac_incident_type_id
              from cs_incident_types_tl
              where name like 'XXX TAC Service Request'
              and rownum < 2;
    --           and language = 'US';
              select nvl((select 1
              from dual
              where exists( select incident_status_id
                        from cs_incident_statuses_b
                        where incident_status_id = p_status_id
                        and close_flag is not null
                        and close_flag = 'Y')
    and ( p_resolution_code is null
    or (p_resolution_code NOT IN ('CS_SR_CLOSED_AS_DUP', 'XXXXX_SR_CXL', 'XXXXX_SR_INFO', 'XXXXX_SR_MGMT')
         and p_sr_type_id in ( l_isr_incident_type_id )),0) into l_chargeable_sr_flag
         from dual;
              select nvl((select 1
              from dual
              where exists( select incident_status_id
                        from cs_incident_statuses_b
                        where incident_status_id = p_status_id
                        and close_flag is not null
                        and close_flag = 'Y')
    and ( p_resolution_code is null
    or (p_resolution_code NOT IN ('CS_SR_CLOSED_AS_DUP', 'XXXXX_SR_CXL', 'XXXXX_SR_INFO', 'XXXXX_SR_MGMT')
         ),0) into l_sr_closing_flag
         from dual;
         if ( l_sr_closing_flag = 1 and ((p_resolution_summary is null) or (p_resolution_summary = FND_API.G_MISS_CHAR)) ) then
                        x_status := 'F';
                        --x_mesg := 'Resolution Summary can not be empty while closing Service request';
                        fnd_message.set_name ('XXXXX', 'MISSING_RESOLUTION_SUMMARY');     
                        -- fnd_message.set_token ('MESG_PARAM', err_mesg || '::' || l_mesg);
                        fnd_msg_pub.ADD;     
         end if;
              -- Check whether outage information is complete at the time of closure.
         if ( l_sr_closing_flag = 1 ) then
              l_invalid_outage_info := 0;
         select nvl((select 1
    from dual
    where exists ( select 1
                                  from cs_incidents_ext cie, ego_fnd_dsc_flx_ctx_ext grp1
                                  where incident_id = p_service_request_id
                                  and grp1.application_id = 170
                                            and grp1.descriptive_flexfield_name like 'XX_SR_CONTEXT'
                                            and grp1.descriptive_flex_context_code like 'XXXXXOutageTab'
                                            and cie.attr_group_id = grp1.attr_group_id
                                            and ( c_ext_attr1 is null or c_ext_attr2 is null or c_ext_attr3 is null or
                                                 c_ext_attr4 is null or c_ext_attr5 is null or c_ext_attr6 is null or
                                                 c_ext_attr7 is null or n_ext_attr1 is null or n_ext_attr2 is null or
                                                 n_ext_attr3 is null or n_ext_attr4 is null or n_ext_attr5 is null or
                                                 d_ext_attr1 is null or d_ext_attr2 is null or d_ext_attr3 is null)
                             -- if all of them are null then we should ignore
                                            and NOT ( c_ext_attr1 is null and c_ext_attr2 is null and c_ext_attr3 is null and
                                                 c_ext_attr4 is null and c_ext_attr5 is null and c_ext_attr6 is null and
                                                 c_ext_attr7 is null and n_ext_attr1 is null and n_ext_attr2 is null and
                                                 n_ext_attr3 is null and n_ext_attr4 is null and n_ext_attr5 is null and
                                                 d_ext_attr1 is null and d_ext_attr2 is null and d_ext_attr3 is null))), 0) into l_invalid_outage_info
    from dual;
                        if ( l_invalid_outage_info = 1 )     then
                             x_status := 'F';
                             fnd_message.set_name ('XXXXX', 'MISSING_OUTAGE_INFORMATION');     
                             fnd_msg_pub.ADD;     
                        end if;
         end if;
              if ( (p_sr_type_id in ( l_isr_incident_type_id )) and (l_chargeable_sr_flag = 1) ) then
                   if ( ( p_bill_to_customer_id is null or     p_bill_to_cust_account_id is null or
                   p_bill_to_customer_site_id is null )) then
                        x_status := 'F';
                        --x_mesg := 'Bill to customer name/account/site is empty';
                        fnd_message.set_name ('XXXXX', 'ISR_INVALID_BILL_TO');     
                        -- fnd_message.set_token ('MESG_PARAM', err_mesg || '::' || l_mesg);
                        fnd_msg_pub.ADD;
                   else
                        select count(*) into l_orders_created
                        from cs_incident_links
                        where subject_id = p_service_request_id
                        and subject_type = 'SR'
                        and object_type = 'ORDERS';
                        /* If orders are not created for this SR then create the order */
                        if ( l_orders_created = 0 ) then
                        /* Create Order */
                        err_mesg := 'Got the Incident Types and Incidents Status flag';
                        select nvl((select quote_status_id
                        from aso_quote_statuses_tl
                        where language = 'US'
                        and upper(meaning) = 'ENTERED'), 0) into l_quote_Status_id
                        from dual;
                        err_mesg := 'Got the Quote Status Id';
                        l_qte_rec.party_id := p_bill_to_customer_id;
    *                    l_qte_rec.party_id := p_bill_to_customer_id;
    *                    l_qte_rec.cust_party_id := p_bill_to_customer_id;
    *                    l_qte_rec.cust_account_id := p_bill_to_cust_account_id;
    *                    l_qte_rec.INVOICE_TO_CUST_PARTY_ID  := p_bill_to_customer_id;
    *                    l_qte_rec.INVOICE_TO_CUST_ACCOUNT_ID  := p_bill_to_cust_account_id;
    *                    l_qte_rec.INVOICE_TO_PARTY_SITE_ID  := p_bill_to_customer_site_id;
    *                    l_qte_rec.INVOICE_TO_PARTY_ID := p_bill_to_customer_id;
    *                    l_qte_rec.quote_status_id := l_quote_status_id;
    *                    l_qte_rec.quote_status_code := 'ENTERED';
    *                    l_qte_rec.quote_status := 'ENTERED';
    *                    l_control_rec.book_flag := 'N';
    *                    err_mesg := 'set the Quote Header';*
    *                    select nvl((select transaction_type_id*
    *                    from oe_transaction_types_v*
    *                    where name like 'Service Order'), 0 ) into l_qte_rec.order_type_id*
    *                    from dual;*
    *                    err_mesg := 'Got Order Type';*
    *                    l_qte_rec.currency_code := 'USD';
    how to insert rows in tmp table from rec_type which is in bold text .... i want to insert after the last statement .this is for debugging after executing the procedure

    No version number and lots of other missing information.
    That said look at the example here:
    http://www.morganslibrary.org/reference/insert.html
    under "RECORD INSERT."

  • How to get the last inserted record from a table ?

    :-) Hiee E'body
    I work on Oracle 8i and need to get the last
    record inserted in a table.
    I have tried using rownum and rowid pseudo-columns
    but that doesn't work.
    Can you please help me out ?
    :-) Have a nice time
    Vivek Kapoor.
    IT, Atul Ltd.,
    India.

    I'm not sure about 8i features.
    I assume here that you don't have 'Date-Time' stamp columns on the table which is the easiest way to determine the last inserted row in the table.
    If not try the following :-
    select address, piece, SQL_TEXT
    from V$SQLTEXT
    where upper(sql_text) like '%INSERT INTO TABLE_NAME%'
    Substiute the TABLE_NAME with the name of the actual table.
    Have fun.
    Regards,
    Shailender
    :-) Hiee E'body
    I work on Oracle 8i and need to get the last
    record inserted in a table.
    I have tried using rownum and rowid pseudo-columns
    but that doesn't work.
    Can you please help me out ?
    :-) Have a nice time
    Vivek Kapoor.
    IT, Atul Ltd.,
    India.

  • Deleting Rows From A Table After Running a Report

    I've created a report that inserts rows into a table on the asp page then calls a BI Publisher report to display the data. After running the report in BI Publisher I need to delete the rows from the table that had just been inserted. How is the best way to go about this in BI Publisher?

    The best way I know of would be to use an "afterReport trigger".
    An afterReport trigger fires after the XML output has been generated.
    Thanks,
    Bipuser

  • Deleting a row from parent table

    Dear Guru's
    I am having two table with parent - child relationship. My problem is when I am deleting a row from parent table the curresponding child row from child table also should be deleted.
    My Primary table 'Employee, EMPID Primary key
    Child table 'Privilage' inthis EMPID referencing the EMPID of Employee table
    My need is when I am deleting a row from parent table the curresponding child row from child table also should be deleted
    I issued the SQL query like,
    delete from employee where empid='12345' cascade constraints;
    Then it showing me error like,
    ERROR at line 1:
    ORA-00933: SQL command not properly ended
    Please resolve my issue , Its Top urgent
    Thanks & Cheers
    Antony

    Choosing How Foreign Keys Enforce Referential Integrity
    Oracle Database allows different types of referential integrity actions to be enforced, as specified with the definition of a FOREIGN KEY constraint:
    Prevent Delete or Update of Parent Key The default setting prevents the deletion or update of a parent key if there is a row in the child table that references the key. For example:
    CREATE TABLE Emp_tab ( 
    FOREIGN KEY (Deptno) REFERENCES Dept_tab);Delete Child Rows When Parent Key Deleted The ON DELETE CASCADE action allows parent key data that is referenced from the child table to be deleted, but not updated. When data in the parent key is deleted, all rows in the child table that depend on the deleted parent key values are also deleted. To specify this referential action, include the ON DELETE CASCADE option in the definition of the FOREIGN KEY constraint. For example:
    CREATE TABLE Emp_tab (
        FOREIGN KEY (Deptno) REFERENCES Dept_tab 
            ON DELETE CASCADE); Set Foreign Keys to Null When Parent Key Deleted The ON DELETE SET NULL action allows data that references the parent key to be deleted, but not updated. When referenced data in the parent key is deleted, all rows in the child table that depend on those parent key values have their foreign keys set to null. To specify this referential action, include the ON DELETE SET NULL option in the definition of the FOREIGN KEY constraint. For example:
    CREATE TABLE Emp_tab (
        FOREIGN KEY (Deptno) REFERENCES Dept_tab 
            ON DELETE SET NULL);
    SQL> conn scott/tiger
    Connected.
    SQL> create table ppk ( no number primary key);
    Table created.
    SQL> begin for inn in 1..10 loop insert into ppk values (inn); end loop; end;
    PL/SQL procedure successfully completed.
    SQL> create table ffk ( no number references ppk(no));
    Table created.
    SQL> begin for inn in 1..10 loop insert into ffk values (inn); end loop; end;
    PL/SQL procedure successfully completed.
    SQL> drop table ppk cascade constraints;
    Table dropped.Message was edited by:
    user52
    Message was edited by:
    user52
    Message was edited by:
    user52

  • Deleting a row from a table containing CLOB as one of the columns

    When i delete a row from a table which contains a CLOB (internal clob) i.e. CLOB or BLOB column, Will the CLOB data will also be deleted ? I understand that what exactly stored in the CLOB column is the clob locator which points to the actual data.
    So, when I delete this row, the clob locator will be deleted, but will the actual data what this locator is pointing to is also deleted ??? if not what is the process to delete the data the locator is pointing to when the row containing the locator is deleted ? If this is not happening then the actual data might become an orphan data which nobody has access to, will automatic garbage cleaning occurs on a frequent intravels to delete unaddressed data residing on the database server ?
    Thanks in advance for the help, can email me at [email protected] alternatively.
    Regards,
    Srinivasa C.

    Michael,
    Thanks very much for your inputs, here are the results i got when i tried the way you explained in your answer, the TRUNCATE command made the actual size back to normal, but the delete is not the same, so, how can i delete the data that a particular clob locator may point to ?
    truncate would delete all the rows of the table, which might not serve my purpose, i would like to delete a row and also it's associated clob data from the database! is there anyway to do this ?
    is there any limitation on the ool_sample size? i am basically a c++ programmer, i am looking for some function like FREE which would free the allocated memory to the clob once the locator is deleted.
    your help is greatly appreciated - Thanks!
    :-) Srini.
    ==========================
    My Results:
    ==========================
    SQL> create table sample (
    2 id integer primary key,
    3 the_data CLOB default empty_clob() )
    4 lob (the_data) store as ool_sample;
    Table created.
    SQL> select segment_name, round(sum(bytes)/1024, 2) || 'K' as sotrage_consumed
    2 from user_segments
    3 where segment_name in ('SAMPLE', 'OOL_SAMPLE')
    4 group by segment_name;
    SEGMENT_NAME
    SOTRAGE_CONSUMED
    OOL_SAMPLE
    20K
    SAMPLE
    10K
    SQL> select count(*) from sample;
    COUNT(*)
    0
    SQL> begin
    2 for i in 1..1000
    3 loop
    4 insert into sample values (i, RPAD('some data', 4000) );
    5 end loop;
    6 end;
    7 /
    PL/SQL procedure successfully completed.
    SQL> select segment_name, round(sum(bytes)/1024, 2) || 'K' as sotrage_consumed
    2 from user_segments
    3 where segment_name in ('SAMPLE', 'OOL_SAMPLE')
    4 group by segment_name;
    SEGMENT_NAME
    SOTRAGE_CONSUMED
    OOL_SAMPLE
    6420K
    SAMPLE
    70K
    SQL> delete sample;
    1000 rows deleted.
    SQL> select segment_name, round(sum(bytes)/1024, 2) || 'K' as sotrage_consumed
    2 from user_segments
    3 where segment_name in ('SAMPLE', 'OOL_SAMPLE')
    4 group by segment_name;
    SEGMENT_NAME
    SOTRAGE_CONSUMED
    OOL_SAMPLE
    6420K
    SAMPLE
    70K
    SQL> commit;
    Commit complete.
    SQL> select segment_name, round(sum(bytes)/1024, 2) || 'K' as sotrage_consumed
    2 from user_segments
    3 where segment_name in ('SAMPLE', 'OOL_SAMPLE')
    4 group by segment_name;
    SEGMENT_NAME
    SOTRAGE_CONSUMED
    OOL_SAMPLE
    6420K
    SAMPLE
    70K
    SQL> begin
    2 for i in 1..1000
    3 loop
    4 insert into sample values (i, rpad('some data', 4000));
    5 end loop;
    6 end;
    7 /
    PL/SQL procedure successfully completed.
    SQL> select segment_name, round(sum(bytes)/1024, 2) || 'K' as sotrage_consumed
    2 from user_segments
    3 where segment_name in ('SAMPLE', 'OOL_SAMPLE')
    4 group by segment_name;
    SEGMENT_NAME
    SOTRAGE_CONSUMED
    OOL_SAMPLE
    9616K
    SAMPLE
    70K
    SQL> truncate table sample;
    Table truncated.
    SQL> select segment_name, round(sum(bytes)/1024, 2) || 'K' as sotrage_consumed
    2 from user_segments
    3 where segment_name in ('SAMPLE', 'OOL_SAMPLE')
    4 group by segment_name;
    SEGMENT_NAME
    SOTRAGE_CONSUMED
    OOL_SAMPLE
    20K
    SAMPLE
    10K

  • Error while inserting rows in a table

    Hi,
    We have recently migrated from 9i to 10g. We have a scheduled job out our DB which first deletes all the rows from a table and then inserts them back by selecting rows from 5 tables. This table has a composite primary key based on 6 columns in it. In 9i, when i try to insert rows into the table after deleting all the rows from it, I am able to insert the data successfully . However, in 10g, when i try doing the same operation, it fails with the ORA error:
    ORA-00001: unique constraint violated
    The same query which works perfectly in 9i fails in 10g
    If anybody has some ideas on how to resolve the same, kindly let me know.
    Thanks in advance.

    Hi,
    I was finally able to resolve the reason behind that error message and found it even more weird. The error was because I was using the substr function for extracting the characters 1-4 from a column which is 5 characters long. When i specify the query as:
    select substr(column1, 1, 4)) from table1;
    only the characters 1-3 are retrieved. Now if i change the query to select substr(column1, 1, 5)) from table1, in that case also only 3 characters are retrieved although i have specified the substr to start from 1 and read till 5 characters. Also, when i run the query:
    select length(substr(column1, 1, 4)) from table1 or select length(substr(column1, 1, 5)) from table1
    I get the answer as 3.
    However, the most amazing part is that the query is working perfectly in 9i and is retrieving the data correctly i.e. from substr 1-4.
    Can anyone suggest what the problem could be?
    Thanks
    Edited by: CrazyAnie on May 13, 2009 1:34 AM

  • Last Inserted Row in a Table

    Hi,
    I want to select only the last inserted row in a table. Can anybody help me how can i get it.
    Eg
    select * from emp;
    empno ename sal
    12 abc 100
    13 xyz 200
    Now i have inserted a row as
    Insert into emp values (14,'Rohit',500);
    So i only want to select the last inserted row i.e.. empno 14 (in this case).
    Thanks
    Bye
    Rohit Taneja

    Thanks to all for replying.
    But the result is not which i desire.
    I have deleted the existing row in the same table as
    SQL> Delete from emp where empno = 13;
    1 row deleted.
    Then i inserted a new row as
    SQL> insert into emp values(10,'SRI',200);
    1 row created.
    Then i committed the work
    SQL> commit;
    Commit complete.
    But still am getting the last row as
    SQL> select * from emp
    where rowid=(select max(rowid)
    from emp);
    EMPNO ENAME SAL
    14 ROHIT 500
    as the solution.
    But here i am supposed to get the row with empno 10.
    I have tried both the queries and still geting the same result.
    Please look aat it again,
    Thanks in advance
    Bye
    Rohit Taneja
    Hi,
    I want to select only the last inserted row in a
    table. Can anybody help me how can i get it.
    Eg
    select * from emp;
    empno ename sal
    12 abc 100
    13 xyz 200
    Now i have inserted a row as
    Insert into emp values (14,'Rohit',500);
    So i only want to select the last inserted row i.e..
    empno 14 (in this case).
    Thanks
    Bye
    Rohit Taneja

  • How NOT to restrict no of rows from two tables

    I have two identical tables Invoice and Payment. The only difference is Invoice_id,Invoice_Amt and Payment_id,Payment_Amt columns that shows different ids and amounts. The bank_ids, names, account_types are same. Invoice table has 3 rows and Payment has 2. Simply meaning that there were 3 invoices generated but the bank received 2 payments. I want to show Invoice_Amt and Payment_Amt using sql query. But its giving me total 6 rows. Whereas, I want 3 from Invoice and 2 rows from Payment table to show side-by-side.
    CREATE TABLE invoice
    ( invoice_id NUMBER
    bank_id NUMBER,
    bank_name VARCHAR2(256),
    invoice_amount NUMBER);
    ----Invoice table has 3 rows showing 3 Invoice Amts
    CREATE TABLE payment
    ( payment_id NUMBER
    bank_id NUMBER,
    bank_name VARCHAR2(256),
    payment_amount NUMBER);
    ----Payment table has 2 rows showing 2 Payments
    After executing this sql statement below, I get 6 rows:
    select inv.invoice_amount,pymt.payment_amount from invoice inv,payment pymt where inv.bank_id=pymt.bank_id;
    How can I show 3 rows for Invoice and 2 for Payment..?
    Thank you.

    Hi,
    So you want
    the 1st invoice to appear side-by-side with the 1st payment,
    the 2nd invoice to appear side-by-side with the 2nd payment,
    the nth invoice to appear side-by-side with the nth payment.
    But, if there are an uneqaul numner of payments and invoices, all the payments and all the invoices must still be shown, alone on a row if necessary.
    That sounds like a job for FULL OUTER JOIN.
    Use the analytic ROW_NUMBER fucntion to determine which is the 1st, 2nd, ..., nth row in each table, for each bank.
    WITH     invoice_plus_r_num     AS
         SELECT     bank_id, bank_name
         ,      invoice_amount
         ,     ROW_NUMBER () OVER ( PARTITION BY  bank_id, bank_name
                                   ORDER BY          invoice_id
                           )         AS r_num
         FROM    invoice
    ,     payment_plus_r_num     AS
         SELECT     bank_id, bank_name
         ,      payment_amount
         ,     ROW_NUMBER () OVER ( PARTITION BY  bank_id, bank_name
                                   ORDER BY          payment_id
                           )         AS r_num
         FROM    payment
    SELECT       NVL (i.bank_id,   p.bank_id)          AS bank_id
    ,       NVL (i.bank_name, p.bank_name)     AS bank_name
    ,       i.invoice_amount
    ,       p.payment_amount
    FROM          invoice_plus_r_num     i
    FULL OUTER JOIN     payment_plus_r_num     p  ON   i.bank_id     = p.bank_id
                                        AND     i.bank_name     = p.bank_name
                                AND     i.r_num          = p.r_num
    ORDER BY  bank_id     -- you can use column aliases here
    ,       bank_name
    ,       NVL (i.r_num, p.r_num)
    ;You mentioned something about accounts, but didn't include that in the CREATE TABLE statements. You'll probably want to add that wherever I used bank_id and bank_name, above.
    Are invoce and payment actually views, rather than tables? If not, you should have a separate bank table, and only include the bank_id in the other tables.
    I hope this answers your question.
    If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all tables, and also post the results you want from that data.
    Explain, using specific examples, how you get those results from that data.
    Always say which version of Oracle you're using.
    Edited by: Frank Kulash on Feb 3, 2011 12:32 PM

  • Retrive last inserted  record  from database table

    Hi,
    some body inserting a record into table 'A' through some procedure/java program.i want to retrive the last inserted record from database table.records are not stored in order.Can any body help me.

    In general, unless you are storing a timestamp as part of the row or you have some sort of auditing in place, Oracle has no idea what the "first" or "last" record in a table is. Nor does it track when a row was inserted.
    - If you have the archived logs from the point in time when the row was inserted, you could use LogMiner to find the timestamp
    - If the insert happened recently (i.e. within hours), you may be able to use flashback query to get the value
    - If you're on 10g or later and the table was built with ROWDEPENDENCIES and the insert happened in the last few days and you can deal with a granularity of a few seconds and you don't need 100% accuracy, you could get the ORA_ROWSCN of the row and convert that to a timestamp.
    If this is something you contemplate needing, you need to store the data in the row or set up some sort of auditing.
    Justin

  • Append screen inserted row to internal table

    Hi Experts,
    I have created a program using table control. But after filling a row when i press enter the entire row getting blank.
    So i need to append the last inserted row from table control to internal table so that when i press enter that row remains on screen.
    Thanks & Regards
    Ashutosh Katara

    Hi,
    try this code  in PAI,
    IF sy-ucomm = 'ENTER'.
      if  tabc-col1 is NOT INITIAL and
         tabc-col2 is NOT INITIAL and
        tabc-col3 is NOT INITIAL and
         tabc-col4 is NOT INITIAL.
        w_tab-field1 =  tabc-col1.
        w_tab-field2 = tabc-col2.
        w_tab-field3 = tabc-col3.
        w_tab-field3 =  tabc-col4.
       modify <itab> FROM <workarea> INDEX sy-tabix.
    ENDIF.
    ENDIF

  • Insert row in a table control

    Hi,
    I have a requirement to insert a new row and delete an existing row from a table control.
    Please help me how to proceed with this.
    Thanks in advance.
    Suresh

    Hi,
    Sorry for wrongly framed question.
    The question is
    I have a requirement to insert a new <b>column</b> and delete an existing <b>column</b> from a table control.
    Thanks,
    Suresh

  • How to compare two rows from two table with different data

    how to compare two rows from two table with different data
    e.g.
    Table 1
    ID   DESC
    1     aaa
    2     bbb
    3     ccc
    Table 2
    ID   DESC
    1     aaa
    2     xxx
    3     ccc
    Result
    2

    Create
    table tab1(ID
    int ,DE char(10))
    Create
    table tab2(ID
    int ,DE char(10))
    Insert
    into tab1 Values
    (1,'aaa')
    Insert
    into tab1  Values
    (2,'bbb')
    Insert
    into tab1 Values(3,'ccc')
    Insert
    into tab1 Values(4,'dfe')
    Insert
    into tab2 Values
    (1,'aaa')
    Insert
    into tab2  Values
    (2,'xx')
    Insert
    into tab2 Values(3,'ccc')
    Insert
    into tab2 Values(6,'wdr')
    SELECT 
    tab1.ID,tab2.ID
    As T2 from tab1
    FULL
    join tab2 on tab1.ID
    = tab2.ID  
    WHERE
    BINARY_CHECKSUM(tab1.ID,tab1.DE)
    <> BINARY_CHECKSUM(tab2.ID,tab2.DE)
    OR tab1.ID
    IS NULL
    OR 
    tab2.ID IS
    NULL
    ID column considered as a primary Key
    Apart from different record,Above query populate missing record in both tables.
    Result Set
    ID ID 
    2  2
    4 NULL
    NULL 6
    ganeshk

Maybe you are looking for