タスクと支払いとの多対 1 の関係を持つ重複した user_ids を持つテーブルがありました。
タスクのグループごとの最大値を使用して、タスクの完了率が最も高い行を返しました。ただし、同じテーブルの最高の支払い完了統計でこの新しいテーブルを更新したいと思います。
例えば:
id date taskid payid task_completion pay_value
4722 2007-11-08 16:20:14 2 3 7.14 0
4722 2007-11-08 16:20:14 3 3 0.00 0
4722 2007-11-08 16:20:14 5 3 0.00 0
4722 2007-11-08 16:20:14 2 6 7.14 40
4722 2007-11-08 16:20:14 3 6 0.00 40
4722 2007-11-08 16:20:14 5 6 0.00 40
4724 2007-11-20 15:32:40 4 7 25.71 105
4726 2008-01-28 11:44:50 7 8 7.14 52
4726 2008-01-28 11:44:50 8 8 34.29 52
4726 2008-01-28 11:44:50 10 8 65.71 52
4726 2008-01-28 11:44:50 7 9 7.14 24
4726 2008-01-28 11:44:50 8 9 34.29 24
したがって、次のように、タスクの完了時にグループごとの最大値を使用して、新しいテーブル (一意の ID を持つ) を作成しました。
id date taskid payid task_completion pay_value
4722 2007-11-08 16:20:14 2 3 7.14 0
4724 2007-11-20 15:32:40 4 7 25.71 105
4726 2008-01-28 11:44:50 10 8 65.71 52
問題は、id 4722 の場合、最高の pay_value と payid が結果のテーブルに挿入されていないことです。
これをフォームで更新したいと思います(この選択を使用):
SELECT
s1.payid,
s1.pay_value,
FROM
f_tbl s1
LEFT JOIN
f_tbl s2 ON s1.cashid = s2.cashid
AND s1.pay_value > s2.pay_value
WHERE
s2.cash_id IS NULL
GROUP BY user_id;
ただし、このクエリに基づいて最終テーブルを更新することはできないようです。私は困惑しています、あなたの助けに感謝します。