Как создать внутреннее соединение и левое соединение в Oracle 8i - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь создать Oracle 8i QUERY с комбинацией Inner JOIns с несколькими условиями, а также Left JOin с несколькими условиями.Тем не менее, я продолжаю получать команды SQL не правильно завершена.Мой опыт в основном связан с T-SQl, поэтому заранее прошу прощения, если это очевидно ..

SELECT TRANS.CUSTOMER_NUMBER AS "AR CUST", CUST.CUSTOMER_NUMBER AS 
"CUSTNUM", CUSTA.FVE_NUMBER AS "FVE"
FROM FINANCE.AR_TRANSACTIONS  TRANS
JOIN FINANCE.CUSTOMERS CUST
ON (TRANS.CUSTOMER_NUM = CUST.CUSTOMER_NUM
AND TRANS.COMPANY_NUM = CUST.COMPANY_NUM)
LEFT JOIN FINANCE.CUSTOMER_ADDRESSES CUSTA
ON (TRANS.FVE_NUMBER = CUSTA.FVE_NUMBER
AND TRANS.COMANY_NUM = CUSTA.CUSTOMER_NUM )
WHERE ROWNUM < 5; 

1 Ответ

0 голосов
/ 14 декабря 2018

8i не поддерживает синтаксис соединения ANSI '92 влево, вправо, внутреннее, полное внешнее, синтаксис перекрестного соединения вы должны использовать (+) нотацию ...

что-то вроде ...

SELECT TRANS.CUSTOMER_NUMBER AS "AR CUST"
     , CUST.CUSTOMER_NUMBER AS "CUSTNUM"
     , CUSTA.FVE_NUMBER AS "FVE"
FROM FINANCE.AR_TRANSACTIONS  TRANS
   , FINANCE.CUSTOMERS CUST
   , FINANCE.CUSTOMER_ADDRESSES CUSTA
WHERE TRANS.CUSTOMER_NUM = CUST.CUSTOMER_NUM
  AND TRANS.COMPANY_NUM = CUST.COMPANY_NUM
  AND TRANS.FVE_NUMBER = CUSTA.FVE_NUMBER(+)
  AND TRANS.COMANY_NUM = CUSTA.CUSTOMER_NUM(+)
  AND ROWNUM < 5 
...