の一環として、私はこのようなものがあります:のMySQL - WHERE句でMINとMAXを選択する必要があり、大きなクエリ
SELECT foo1, foo2, foo3, MAX(foo4) AS max FROM table WHERE foo5 = bar;
事がfoo5 =バー句が適用有することに加えて、ですクエリ全体に対して、私はfoo4の条件も指定したいと思います。私はテーブル全体からfoo4の最大値を求めているのではなく、別のフィールドが特定のものと等しいときのfoo4の最大値を求めています。そうですね。
SELECT foo1, foo2, foo3, MAX(foo4 WHERE field=otherthing) AS max FROM table WHERE foo5 = bar;
どうすればいいですか?
編集:ここでもう少し詳しく説明します。これは私の現在のクエリである:この場合
SELECT Car_Type, Car_Imm, MIN(Use_Kilom) AS Init_Kilom,
MAX(Use_Kilom) AS Final_Kilom, MAX(Use_Kilom)
- MIN(Use_Kilom) AS Distance_Kilom, null, null,
SUM(Use_Amount) AS Amount_Total,
SUM(Use_Liter)/20 AS Liter_Total, null, null
FROM fueluse, car
WHERE Use_Car = Car_Code AND
(Use_Date BETWEEN '$datefrom' AND '$dateto')
、MAX(Use_Kilom)およびMIN(Use_Kilom)は、両方のテーブル全体からの絶対最大値と最小値を取得しています。私はそれぞれのUse_Car値の最大値を取得したいだけです。
私は、それぞれ、次のように置き換える試みた:
(SELECT MIN(Use_Kilom) FROM fueluse, car WHERE Use_Car = Car_Code) AS Init_Kilom
(SELECT MAX(Use_Kilom) FROM fueluse, car WHERE Use_Car = Car_Code) AS Final_Kilom
をしかし、彼らはまだ私に全体fueluseテーブルのUse_Kilomフィールドの絶対最小値と最大値を与えるだけではなく、各Use_Carの最大値と最小値のためにしていますUse_Kilomの値。 Use_CarとCar_Codeは外部キーとしてリンクされていることに注意してください。
(またはそのエイリアス)に属しているテーブル名を使用してフィールド名を修飾した場合それは、物事明確になるだろう。 –
私はもう少し詳しく質問を編集しました。 – Bluejay
なぜあなたは意図的に 'ヌル'を選択していますか? – Martin