Convert query using outer join from Oracle to Postgresql

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • osman7king
    New Member
    • Sep 2010
    • 61

    Convert query using outer join from Oracle to Postgresql

    hello all...
    I'm trying to convert the query which uses outer join statment from Oracle to PostgreSQL but I have some problems with this query
    may some one help me for this problem?
    Code:
    [B]SELECT [/B]
    ACT_ACCOUNT.ID_ACCOUNT, ACT_ACCOUNT.CODE_ACCOUNT,  
    ACT_ACCOUNT.NAME_AR,  ACT_ACCOUNT.NAME_EN,  ACT_ACCOUNT.ACCOUNT_PID, 
    DECODE(ACT.CODE_ACCOUNT,null,0,ACT.CODE_ACCOUNT)as "CODE_PARENT_ACCOUNT",   
    DECODE(ACT.NAME_AR,null,' ',ACT.NAME_AR)as "NAME_PARENT_ACCOUNT",
    ACT_ACCOUNT.NOTES1,  ACT_ACCOUNT.NOTES2,  
    ACT_ACCOUNT.ID_INCOME, ACT_ACCOUNT.ID_FINANCIAL_CENTER,
    ACT_ACCOUNT.ID_COMPLEX_FINANCIAL_CENTER,
    ACT_ACCOUNT.ID_MONETARY_FLOW, ACT_ACCOUNT.ID_OWNERSHIP_CHANGE,
    ACT_ACCOUNT.INCOME_IS_POSITIVE,
    ACT_ACCOUNT.FINANCIAL_CENTER_IS_POSITIVE,
    ACT_ACCOUNT.MONETARY_FLOW_IS_POSITIVE,
    ACT_ACCOUNT.OWNERSHIP_CHANGE_IS_POSITIVE,
    ACT_ACCOUNT.ACT_TYPE, ACT_ACCOUNT.ACT_NATURE,
    ACT_ACCOUNT.FINAL_ACCOUNT, ACT_ACCOUNT.IS_FINAL,
    ACT_ACCOUNT.ACTIVE_INDICATOR, ACT_ACCOUNT.DATE_CREATED,
    ACT_ACCOUNT.DATE_UPDATED, ACT_ACCOUNT.ID_USER,
    ACT_ACCOUNT_DETAIL.ID_ACCOUNT,
    ACT_ACCOUNT_DETAIL.BUSINESS, ACT_ACCOUNT_DETAIL.PHONE,
    ACT_ACCOUNT_DETAIL.PHONE2, ACT_ACCOUNT_DETAIL.MOBILE,
    ACT_ACCOUNT_DETAIL.FAX, ACT_ACCOUNT_DETAIL.ADDRESS1,
    ACT_ACCOUNT_DETAIL.ADDRESS2, ACT_ACCOUNT_DETAIL.ID_CITY,
    ACT_ACCOUNT_DETAIL.POB, ACT_ACCOUNT_DETAIL.E_MAIL,
    ACT_ACCOUNT_DETAIL.WEB_SITE, ACT_ACCOUNT_DETAIL.SPECIAL_FILE,
    ACT_ACCOUNT_DETAIL.ID_TRUST_PERIOD,
    ACT_TRUST_PERIOD.PERIOD, ACT_ACCOUNT.DATE_ACT_CREATED,
    ACT_ACCOUNT_DETAIL.ID_CURRENCY, GEN_CURRENCY.NAME_CURRENCY,
    GEN_CURRENCY.EXCHANGE, ACT_ACCOUNT_DETAIL.HAS_MARK,
    ACT_ACCOUNT_DETAIL.LAST_YEAR_BALANCE,
    ACT_ACCOUNT_DETAIL.ID_SALES_MAN,
    ACT_ACCOUNT_DETAIL.TRUST_LIMIT,
    ACT_ACCOUNT.ID_BOX_ACCOUNT, BOX_ACT.CODE_ACCOUNT,
    BOX_ACT.NAME_AR, BOX_ACT.NAME_EN
    
    [B]FROM [/B]ACT_ACCOUNT, ACT_ACCOUNT_DETAIL, 
            ACT_ACCOUNT ACT,   ACT_ACCOUNT BOX_ACT,
            GEN_CURRENCY, ACT_TRUST_PERIOD      
    
    [B]WHERE [/B]
    ACT_ACCOUNT.ACCOUNT_PID = ACT.ID_ACCOUNT(+) 
     
    AND ACT_ACCOUNT.ACTIVE_INDICATOR <> 'I'
    
    AND ACT_ACCOUNT.ID_BOX_ACCOUNT = BOX_ACT.ID_ACCOUNT(+)
    
    AND ACT_ACCOUNT.ID_ACCOUNT= ACT_ACCOUNT_DETAIL.ID_ACCOUNT
    
    AND ACT_ACCOUNT_DETAIL.ID_CURRENCY = GEN_CURRENCY.ID_CURRENCY(+)
    
    AND ACT_ACCOUNT_DETAIL.ID_TRUST_PERIOD = ACT_TRUST_PERIOD.ID_TRUST_PERIOD(+)
  • rski
    Recognized Expert Contributor
    • Dec 2006
    • 700

    #2
    Use LEFT OUTER JOIN clauses

    They can also be use in Oracle.

    Comment

    Working...