0

私が使用しているデータベース(データベース内の何かを更新または変更することはできません。作成しているレポートを照会するだけです)は、かなり奇妙な方法で設定されています。情報に到達するために100万の中間テーブルが必要な場合もあれば、すべてが同じテーブルにある場合もあります。

必要な一意のアドレスを取得するには、3つのテーブル(請求書情報を含むテーブルと、データベース内のすべての組織を含むテーブルに各組織に番号を割り当てるキーを含むテーブル)を結合する必要があります。3つのテーブルの最後にはすべての会社がありますが、会社は同じ異なる役割を持つことができます(たとえば、1つの会社がサプライヤー、1つが顧客、1つがパートナーなど)。 1 =サプライヤー、2=顧客などの役割を示す「タイプ」列。

サンプルコードとデータは以下のとおりです(申し訳ありませんが、ここでテーブルを適切にフォーマットすることはできません):

select * from a
join b on a.id=b.id
join c on b.orgid=c.orgid

データ:

a.OrderID    b.Organization    c.Role
-----------------------------------------    
   123       Acme Inc.            1
   123       Roadrunner Inc.      2
   123       Venture Co.          2

私が行っているクエリでは、注文ID、サプライヤー、顧客、パートナーを取得する必要がありますが、どのように参加したり、WITHステートメントをどのように使用しようとしても、3行が生成され、各行に3つの役割の1つがあります。名前付きと残りはNULLです。

誰かが助けることができるでしょうか?

この長い質問をお読みいただき、誠にありがとうございます。

4

1 に答える 1