0

オラクル11g

PERSON テーブルには、販売者 ID と購入者 ID の両方が含まれています。買い手と売り手を単一の結果セットにするにはどうすればよいですか? 買い手または売り手のいずれかをリストする結果を得ることができますが、両方をリストすることはできません。

Person
=================
 PersonID First   Last
  1      Joe      Camel
  2      Ronald   McFly
  3      Barbara  Wawa

 SalesDetail
 =========================
 TransID   Amount  SellerID CustomerID
 98         500     1        2
 99         700     3        1

Desired Result
===========================================
SellerID    SellerLast  BuyerID BuyerLast  Amount
1           Camel       2       McFly      500
3           Wawa        1       Camel      700
4

2 に答える 2

1

Personテーブルに2回参加するだけ

SELECT sd.sellerID,
       seller.last sellerLast,
       sd.buyerID,
       buyer.last buyerLast,
       sd.amount
  FROM salesDetail sd
       JOIN person seller ON (sd.sellerID = seller.personID)
       JOIN person buyer  ON (sd.buyerID  = buyer.personID)

買い手または売り手が不明である可能性がある場合は、外部結合が必要になることがあります。

于 2012-05-04T16:17:35.137 に答える
1

これを試して

select seller.sellerid, 
       seller.last,
       buyer.buyerid,
       buyer.last, 
       amount
from
person buyer
inner join salesdetail on buyer.personid = salesdetail.cutomerid
inner join person seller on salesdetail.sellerid = seller.personid

現時点では自分自身をテストすることはできません

于 2012-05-04T16:20:38.373 に答える