2017-03-15 7 views
-1

私は2つのテーブルから情報を抽出したいと思います。SQLのヘルプ。結合された2つのテーブルは、1つのテーブルから2つのカラムの情報が必要です。

SELECT B.INVOICE_NUMBER, 
B.BILL_TO_NAME, 
B.SHIP_TO_NAME //Need this some how joined, see comment on code below 
FROM ADJUSTMENTS A, 
INVOICE B, 
CUSTOMER_LOCATION C, 
CUSTOMER_NAME D 
WHERE A.INVOICE_ID = B.INVOICE_ID 
AND C.CUSTOMER_ID = D.CUSTOMER_ID 
AND B.BILL_ID = C.ACCOUNT_NUMBER 
//I want to add B.SHIP_ID = C.ACCOUNT_NUMBER as well, 
//but I am unsure if it will work. Not sure how to extract information from 
//two columns from the same table that is joined to one table. 

私はサブクエリに調査しましたが、それは多くの行に戻ってきてエラーが発生しました。私はOracle SQLの初心者ですが、私は研究を試みましたが、解決策を得られませんでした。どんな助けもありがとうございます。

+6

質問している内容が不明です。サンプルの入力と出力のデータを提供できる方が簡単でしょう。 – ydoow

答えて

0

あなたが望むものを100%も伝えることはできませんが、b.bill_idとb.ship_idに2つのaccount_numberがあり、account_numberごとにcustomer_locationが1つしかない場合は、おそらくcustomer_locationにa異なる別名。 2番目のcustomer_locationにcustomer_nameレコードが必要な場合は、2番目のcustomer_locationにも参加する必要があります。おそらく:

SELECT b.invoice_number, b.bill_to_name, b.ship_to_name 
FROM adjustments a, invoice b, customer_location c, 
    customer_location c2, customer_name d, customer_name d2 
WHERE a.invoice_id = b.invoice_id 
AND c.customer_id = d.customer_id 
AND c2.customer_id = d2.customer_id 
AND b.bill_id = c.account_number 
AND b.ship_id = c2.account_number 

あなたの質問はあいまいなので、これがあなたが探しているものかどうかは分かりません。 account_numberごとに複数のcustomer_locationレコードがある場合は、請求書請求書番号ごとに複数の行を監視し、必要に応じて問題を解決します。私はこれがあなたが探しているものに近づくことを願っています。

関連する問題