0

私は非常に優れた選択ステートメントの職人ではなく、誰かが助けてくれることを望んでいました. 2 つの製造部品テーブルがあります。

STOCK テーブルには、スタンディング インベントリが含まれています。部品が複数の場所に散らばっているため、複数の行に存在するすべての部品番号が含まれています。正解です。

RECEIPT テーブルは誰かが作成したテーブルです。これは単純に部品が受領された最新の年です。各行は部品番号と受領年のみです。部品番号は一度だけ明確に記載されています。

Receipt Year 列を元の STOCK テーブルに貼り付けて、部品が受領された年だけを報告しようとしています。STOCK テーブルの元のデータを変更したくありません。PART NUMBER の一致に基づいて各行に受領年を追加するだけです。これが私の選択ステートメントです:

SELECT DISTINCT STOCK.Project, STOCK.[Part Id], STOCK.Warehouse, STOCK.Location, RECEIPTS.Year from STOCK LEFT JOIN RECEIPTS on STOCK.[Part Id] = RECEIPTS.ITEM_ID GROUP BY STOCK.Project, STOCK.[Part Id], STOCK.Warehouse, STOCK.Location, RECEIPTS.Year;

残念ながら、私のクエリは、次のように、RECEIPTS テーブルで利用可能な各年に対して行を複製し続けます。

Proj        Part Id         Whse_ID Loc         Receipt_Year
A198.730    5962-9313101MPA 770 GFMSTK-116B2    2004
A198.730    5962-9313101MPA 770 GFMSTK-116B2    2005
A198.730    5962-9313101MPA 770 GFMSTK-116B2    2006
A198.730    5962-9313101MPA 770 GFMSTK-116B2    2007
A198.730    5962-9313101MPA 770 GFMSTK-116B2    2009
A198.730    5962-9313101MPA 770 GFMSTK-116B2    2011
A198.730    5962-9313101MPA 770 GFMSTK-116B2    2012
A198.730    5962-9313101MPA 770 GFMSTK-116B2    2013

その 5962- の部分は 2004 年にのみ受領されました (RECEIPTS の 1 つの別個の行)。

どんな助けでも大歓迎です。ありがとう、JM

4

1 に答える 1

0

データの最大日付レコードを最初にプルするプライマークエリで解決されました。

于 2013-03-11T12:58:24.240 に答える