いくつかのテーブルを結合するレポートを作成しています。すべてが完全にマイナス1つの側面を一緒に来た。最高のコストのみを表示するには、cost2フィールドが必要です。基本的に、アイテムは生産を通じていくつかのコスト変更を経て、最終コストが最も高くなります。私はその最終コストだけを照会する必要があります。私はその単純な解決策を知っていますが、私はそれ以上に苦労しています。SQL Server - 最高値でフィルタリング
私のクエリの簡略化した例を次に示します。
MAX関数は意図したとおりに機能しません。
SELECT DISTINCT table1.item_no,
table2.quantity,
table2.date,
table3.cost1,
MAX(table4.cost2)
FROM table1
INNER JOIN table2 ON table2.item_no = table1.item_no
INNER JOIN table3 ON table3.item_no = table1.item_no
INNER JOIN table4 ON table4.item_no = table1.item_no
WHERE table3.cost1 <> 0
GROUP BY table1.item_no,
table2.quantity,
table2.date,
table3.cost1
どのように最終費用を特定しますか? –
これは最後のINNER JOINの入力ミスで、ピリオドではなくカンマになっていますか? 'table1、item_no'は' table1.item_no'でなければなりません – xQbert
"私が意図した通りに動かない"と定義できますか?漠然とした説明に基づいてクエリの定義のためにいくつかの擬似コードを投げ出すつもりならば、投稿したものとまったく同じように見えます。問題を理解するのに役立ちます。解決策を見つけるお手伝いができます。ここから始めましょう。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –