0

MDW_CUSTOMER_ACCOUNTSにはCUSTOMER_IDACCOUNT_IDおよびINVOICE_ID

MDW_INVOICEテーブルにはINVOICE_ID、、、_INVOICE_TRANSACTIONID1INVOICE_TRANSACTIONID2INVOICE_TRANSACTIONID3

MDW_INVOICE_TRANSACTIONテーブルにはINVOICE_TRANSACTIONIDCOST

クエリを使用して 3 つのテーブルから , ACCOUNT_ID,COST1COST2印刷しようとしていますCOST3

SQL> SELECT a.account_id , to_number(i1.cost) , to_number(i2.cost) , to_number(i3.cost)
  2  FROM mdw_customer_accounts a,
  3  mdw_invoice b,
  4  mdw_invoice_transaction c
  5  LEFT JOIN mdw_invoice i1 ON b.INVOICE_TRANSACTIONID1 = i1.INVOICE_TRANSACTIONID
  6  LEFT JOIN mdw_invoice i2 ON b.INVOICE_TRANSACTIONID2 = i2.INVOICE_TRANSACTIONID
  7  LEFT JOIN mdw_invoice i3 ON b.INVOICE_TRANSACTIONID3 =i3.INVOICE_TRANSACTIONID
  8  WHERE a.customer_id='CUS0031' and a.invoice_id=b.invoice_id and a.STATUS='ACTIVE';

次のエラーが表示されます

LEFT JOIN mdw_invoice i1 ON b.INVOICE_TRANSACTIONID1 = i1.INVOICE_TRANSACTIONID * 5 行目のエラー: ORA-00904: "I1"."INVOICE_TRANSACTIONID": 無効な識別子

4

3 に答える 3

3

表 MDW_INVOICE には、INVOICE_TRANSACTIONID という名前の列がありません。

あなたが言ったように、INVOICE_TRANSACTIONID1、INVOICE_TRANSACTIONID2、およびINVOICE_TRANSACTIONID3の列があります。

于 2013-06-07T14:09:14.097 に答える
2

試す:

SELECT a.account_id, to_number(i1.cost), to_number(i2.cost), to_number(i3.cost)
FROM mdw_customer_accounts a
JOIN mdw_invoice b ON a.invoice_id=b.invoice_id
LEFT JOIN mdw_invoice_transaction i1 
       ON b.INVOICE_TRANSACTIONID1 = i1.INVOICE_TRANSACTIONID
LEFT JOIN mdw_invoice_transaction i2 
       ON b.INVOICE_TRANSACTIONID2 = i2.INVOICE_TRANSACTIONID
LEFT JOIN mdw_invoice_transaction i3 
       ON b.INVOICE_TRANSACTIONID3 =i3.INVOICE_TRANSACTIONID
WHERE a.customer_id='CUS0031' and a.STATUS='ACTIVE';
于 2013-06-07T14:40:47.597 に答える