同じ素材の基準で行に優先順位を付ける方法についてのアイデアはありますか? クエリで SG(division) の値を取得する必要があります。私は 227,288 行のみのベース クエリを持っており、以下の値を取得する生のファイルからは約 300,00++ です。私の問題は、ベース番号を使用してクエリを実行するたびに、行から最初のマテリアルのみをキャプチャすることです。
ID MATERIAL DIVISION SCOP(price)
1 a9000 FR390 90
2 b6790 TB900 20
3 a9000 SG2011 35
4 b6790 EU8089 90
上記の例から、227,288 ファイルのうち、マテリアル a9000 の場合、SG2011 以外の SG2011 から 35 の値を取得する必要があると思われる場合、取得している価格値は 90 です。他の部門からのすべての値は問題ありません。つまり、b6790 の場合は問題ありません。 price 値が 20 になるようにします。部門 SG2011 の価格は、材料の優先順位です。
私は MS Access 2007 を使用しています。デザイン ビューまたは SQL ビューで作業しています。皆さんが簡単なコードで私を助けてくれたらいいのに.. (iff..ステートメントまたは単にデザイン ビューで..) または Ms Access の SQL ビュー
編集
以下は私のSQLクエリです(クエリテスト-行数を満たしていないため、ベースクエリに参加しませんが、複数の資料を表示できました)
SELECT Base_CSC.ID, Base_CSC.Material, SC_and_Purchase_Price.[Logistic Ref], SC_and_Purchase_Price.[Commercial Ref], Left([Division],2) & ([Commercial Ref]) AS [Comm Ref], Left([Division],2) & ([Logistic Ref]) AS [Log Ref], IIf(Left([Comm Ref],'2')="SG",[SCOP],'') AS [SCOP SG], SC_and_Purchase_Price.[SC in AUD] AS SCOP
FROM Base_CSC LEFT JOIN SC_and_Purchase_Price ON (Base_CSC.Material = SC_and_Purchase_Price.[Commercial Ref]) AND (Base_CSC.Material = SC_and_Purchase_Price.[Logistic Ref])
ORDER BY Base_CSC.ID;
クエリ テスト - 資料を表示するためのテスト クエリの画像。材料 : LV433620 の材料の結果は 3 件です。しかし、最終クエリを実行すると
最終出力クエリ - 出力クエリの画像
おそらくSCOP SGの出力が必要なときに、LV433620マテリアルは最初の行の値を取りました-(区別するためにscop SGフィールドを作成しました)ので、257.42の代わりに。マテリアル LV433620 の SCOP 値 215.50 が必要です。
以下は、最終出力クエリの SQL ビューです。
SELECT Base_CSC.ID, Base_CSC.Material, Base_CSC.[Vendor Reference], Base_CSC.[Default Vendor], First(IIf(IsNull([scop3_v2.SCOP]),[scop3_v2_1.SCOP],[scop3_v2.SCOP])) AS SCOP
FROM (Base_CSC LEFT JOIN scop3_v2 AS scop3_v2_1 ON Base_CSC.Material = scop3_v2_1.scop1.SCOPLookup) LEFT JOIN scop3_v2 ON Base_CSC.Material = scop3_v2.scop2.SCOPLookup
GROUP BY Base_CSC.ID, Base_CSC.Material, Base_CSC.[Vendor Reference], Base_CSC.[Default Vendor]
ORDER BY Base_CSC.ID;