私は非常に優れた選択ステートメントの職人ではなく、誰かが助けてくれることを望んでいました. 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