1

私は2つのテーブルTabel1Table2. 私のテーブルは次のようになります。

Table1 には 3 つのフィールドがありますCust_Number, sales_org and Orders.

表 2 には名前別のフィールドがありますCust_Number, sales_org, BU and Dist_Channel.

Dist_Channel が table1 にないため、Cust_Number と sales_org の Distinct を TABLE 2 から取得し、table1 と結合して対応する BU を取得する必要があります。

個別の番号を取得するための追加のクエリを 1 つ作成し、そのクエリを最終的なクエリで使用することで、MS アクセスでそれを行うことができました。

誰かがこれについていくつかの提案をすることができますか?

4

5 に答える 5

0

あなたはこのようにすることができます: -

SELECT tbl1.cust_number, tbl1.sales_org tbl2.bu, tbl2.dist_channel
FROM Table1 as tbl1, Table2 as tbl2
WHERE tbl1.cust_number = tbl2.cust_number
AND tbl1.sale_org = tbl2.sales_org
......
于 2013-07-02T13:37:09.583 に答える
0

この単純なバージョンを試してください:

SELECT t1.cust_number, t1.sales_org, t2.BU
FROM Tabel1 t1
INNER JOIN Table2 t2 ON t1.cust_number= t2.cust_number AND t1.sales_org = t2.sales_org
于 2013-07-02T13:35:37.327 に答える
0

Santhosa、私が問題を理解しているように、Table2 では、同じ顧客番号と販売組織 (ただし dist_channels は異なる) を持つ複数の行を持つことができるため、テーブルへの単純な結合により、Table1 から出力される行の数が乗算されます。 、これはあなたが望むものではありません。代わりに、Table2 を単に顧客番号と販売組織の BU のルックアップとして使用する必要があります。ここでは、cust_number,sale_org --> BU からの機能的な依存関係があると想定しています。表 2 のペア、BU は常に同じです。

その仮定が正しい場合、次のことができます。

SELECT tb1.cust_number, tb1.sales_org, tb2.bu
  FROM Table1 AS tb1
  JOIN (
    SELECT DISTINCT cust_number, sales_org, bu
      FROM Table2) AS tb2
    ON tb1.cust_number = tb2.cust_number
   AND tb1.sales_org = tb2.sales_org

ただし、特定の cust_number と sales_org のペアに対して複数の BU がある場合でも、Table1 の特定の cust_number と sales_org のペアに対して複数の行が返されることに注意してください。

于 2013-07-02T14:01:01.933 に答える
0
SELECT t1.cust_number, t2.bu, t2.dist_channel
FROM table1 t1, table2 t2
WHERE t1.cust_number = t2.cust_number
AND t1.sale_org = t2.sales_org
AND -- your actual criteria go here
于 2013-07-02T13:33:08.123 に答える
0

Cust_Number、sales_org は両方のテーブルで共通です。左結合でこれを行うことができます

また、最初にテーブル 2 の Cust_Number と sales_org の個別の数が同じかどうかを確認します

SELECT Tabel1.Cust_Number, Tabel1.sales_org, Table2.BU FROM Tabel1 left JOIN Table2  ON Tabel1.Cust_Number = Table2.Cust_Number AND Tabel1.sales_org = Table2.sales_org
于 2013-07-02T13:33:17.867 に答える