+ Reply to Thread + Post New Thread
Results 1 to 7 of 7
  1. #1
    RIAZ's Avatar
    RIAZ is offline Forum Advisor
    Join Date
    01 Apr 2009
    Posts
    53
    Say Thanks
    0
    Thanked 0 Times in 0 Posts
    Documents
    0
    Uploads
    0

    Default how to add 'BALANCE' column

    hi,
    I am working with a query and successfully get the Debit side (from Table A) and Credit side (from Table B) but i am unable to make the balance column (not exist physically in any table). Any body can help me in this regard. I am using SQL and Oracle 6i Report builder.

    I want to get the following output.
    Example:
    DateDebitsCreditsBalance
    01JAN100 100
    02JAN 5050
    03JAN 100-50
    04JAN200 150

  2.    Club-Oracle Complementary E-Books and Magazines
    Get your free Complementary Copy of Oracle Magazine

    You can also browse the Free Magazines and E-Books section to see the complete list of free magazines, e-books and Whitepapers.

  3. #2
    Sadik's Avatar
    Sadik is offline Administrator
    Join Date
    03 Aug 2008
    Location
    Kolkata, India
    Posts
    1,184
    Say Thanks
    7
    Thanked 83 Times in 54 Posts
    Documents
    4
    Uploads
    2

    Default Re: how to add 'BALANCE' column

    well share your query please, and if possible the table structure
    Learn Oracle with Oracle forum. Check out The Technology Blog

  4. #3
    RIAZ's Avatar
    RIAZ is offline Forum Advisor
    Join Date
    01 Apr 2009
    Posts
    53
    Say Thanks
    0
    Thanked 0 Times in 0 Posts
    Documents
    0
    Uploads
    0

    Default Re: how to add 'BALANCE' column

    Following is the exact query.
    Code sql:
    SELECT      rcta.TRX_DATE AS T_R_DATE, rcta.TRX_NUMBER AS T_R_NUMBER,
            sum(rctla.EXTENDED_AMOUNT) DR, NULL AS CR
    FROM        RA_CUSTOMER_TRX_ALL rcta,
            RA_CUSTOMER_TRX_LINES_ALL rctla
    WHERE       rcta.BILL_TO_CUSTOMER_ID = :C_ID
    AND         rcta.TRX_DATE <= to_date(:TR_DATE)
    AND     rctla.CUSTOMER_TRX_ID = rcta.CUSTOMER_TRX_ID -- join
    GROUP BY    rcta.TRX_NUMBER, rcta.TRX_DATE
    UNION
    SELECT      acra.RECEIPT_DATE AS T_R_DATE,acra.RECEIPT_NUMBER AS T_R_NUMBER, NULL AS DR, acra.AMOUNT AS CR
    FROM        AR_CASH_RECEIPTS_ALL acra
    WHERE       acra.PAY_FROM_CUSTOMER = :C_ID
    AND         acra.RECEIPT_DATE <= to_date(:TR_DATE)
    AND     acra.STATUS IN ('APP','UNAPP')
    ORDER BY    T_R_DATE ASC

  5. #4
    rajavu's Avatar
    rajavu is offline Forum Genius
    Join Date
    13 Oct 2008
    Location
    @ Bangalore , India
    Posts
    471
    Say Thanks
    0
    Thanked 20 Times in 19 Posts
    Documents
    0
    Uploads
    0

    Default Re: how to add 'BALANCE' column

    You can use Analytical function (SUM) for the same purpose.

    Code sql:
    SQL> SELECT DATE_D,DEBITS, CREDITS
      2  FROM DB_CR_BAL;

    DATE_D        DEBITS    CREDITS
    --------- ---------- ----------
    01-JAN-09        100
    02-JAN-09                    50
    03-JAN-09                   100
    04-JAN-09        200
    05-JAN-09                   150

    SQL>
    SQL> SELECT DATE_D,DEBITS, CREDITS,
      2         SUM(NVL(DEBITS,0)-NVL(CREDITS,0)) OVER (ORDER BY  DATE_D) BAL
      3  FROM DB_CR_BAL  ;

    DATE_D        DEBITS    CREDITS        BAL
    --------- ---------- ---------- ----------
    01-JAN-09        100                   100
    02-JAN-09                    50         50
    03-JAN-09                   100        -50
    04-JAN-09        200                   150
    05-JAN-09                   150          0

    SQL>

    Raj.

  6. #5
    RIAZ's Avatar
    RIAZ is offline Forum Advisor
    Join Date
    01 Apr 2009
    Posts
    53
    Say Thanks
    0
    Thanked 0 Times in 0 Posts
    Documents
    0
    Uploads
    0

    Default Re: how to add 'BALANCE' column

    but as you can see in my query, i am using UNION is it possible with UNION ?

  7. #6
    rajavu's Avatar
    rajavu is offline Forum Genius
    Join Date
    13 Oct 2008
    Location
    @ Bangalore , India
    Posts
    471
    Say Thanks
    0
    Thanked 20 Times in 19 Posts
    Documents
    0
    Uploads
    0

    Default Re: how to add 'BALANCE' column

    Yes. But you have to use the SUM Analytical function over the Union result as below.

    Code sql:
    SELECT T_R_DATE,T_R_NUMBER, DR, CR ,
           SUM(NVL(DR,0) - NVL(CR,0)) OVER (ORDER BYT_R_DATE,T_R_NUMBER) BALANCE
    FROM  (
            SELECT      rcta.TRX_DATE AS T_R_DATE, rcta.TRX_NUMBER AS T_R_NUMBER,
                    sum(rctla.EXTENDED_AMOUNT) DR, NULL AS CR
            FROM        RA_CUSTOMER_TRX_ALL rcta,
                    RA_CUSTOMER_TRX_LINES_ALL rctla
            WHERE       rcta.BILL_TO_CUSTOMER_ID = :C_ID
            AND         rcta.TRX_DATE <= to_date(:TR_DATE)
            AND     rctla.CUSTOMER_TRX_ID = rcta.CUSTOMER_TRX_ID -- join
            GROUP BY    rcta.TRX_NUMBER, rcta.TRX_DATE
            UNION
            SELECT      acra.RECEIPT_DATE AS T_R_DATE,acra.RECEIPT_NUMBER AS T_R_NUMBER, NULL AS DR, acra.AMOUNT AS CR
            FROM        AR_CASH_RECEIPTS_ALL acra
            WHERE       acra.PAY_FROM_CUSTOMER = :C_ID
            AND         acra.RECEIPT_DATE <= to_date(:TR_DATE)
            AND     acra.STATUS IN ('APP','UNAPP')
           )

    Raj.

  8. #7
    RIAZ's Avatar
    RIAZ is offline Forum Advisor
    Join Date
    01 Apr 2009
    Posts
    53
    Say Thanks
    0
    Thanked 0 Times in 0 Posts
    Documents
    0
    Uploads
    0

    Default Re: how to add 'BALANCE' column

    It really works, thank you so much.

Similar Threads

  1. Row to Column Transformation
    By rana.rajnikant in forum SQL PL/SQL
    Replies: 3
    Last Post: 11-11-2009, 10:01 AM
  2. query an xmlType column
    By kowalsky in forum SQL PL/SQL
    Replies: 1
    Last Post: 01-27-2009, 03:58 AM

Tags for this Thread