私が使用しているデータベース(データベース内の何かを更新または変更することはできません。作成しているレポートを照会するだけです)は、かなり奇妙な方法で設定されています。情報に到達するために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です。
誰かが助けることができるでしょうか?
この長い質問をお読みいただき、誠にありがとうございます。