私は、複数のユーザーの勤務時間(小計) とユーザーID(volunteerID)を格納するテーブルデューティレコードを持っています。次の選択の文で、私は、各ユーザーIDの合計時間を設定しようとしています:ワンパスで更新して選択する
SELECT
dutyrecord.VolunteerID,
SEC_TO_TIME(SUM(TIME_TO_SEC(SubTotal))) AS total
FROM
volunteerinfo
INNER JOIN
dutyrecord ON
(volunteerinfo.VolunteerID = dutyrecord.VolunteerID)
GROUP BY
dutyrecord.VolunteerID
は、私は、各ユーザに合計時間を更新するために選択して更新ステートメントを組み合わせてもらえますか?私は幸運のような何かと他の方法を試しました:
UPDATE volunteerinfo
SET
TotalHours =
(
SELECT dutyrecord.VolunteerID ,
SEC_TO_TIME(SUM(TIME_TO_SEC(SubTotal))) AS total
FROM
volunteerinfo
INNER JOIN
dutyrecord ON (volunteerinfo.VolunteerID = dutyrecord.VolunteerID)
GROUP BY
dutyrecord.VolunteerID
)
WHERE
volunteerinfo.VolunteerID = dutyrecord.VolunteerID`
誰も私に手を差し伸べることはできますか?
UPDATE
申し訳ありませんが、いくつか試してみると私は答え、私の質問をするために、より明確な方法を考え出す他の例。 私の質問をクリアするには:このプロセスの言語を独立させたいので、このプロセスを1つにまとめることはできますか? (私はちょうど行うさまざまで1つのSQL文を運ぶ。)
まず、私は私一人一人のための労働時間
SELECT VolunteerID、SEC_TO_TIME(SUM(TIME_TO_SEC(小計の合計を与えるために、テーブルを選択))))AS合計 デューティレコードから GROUP BY VolunteerID
ID:10001、1時00分02秒ID:2001、午前10時00分34秒....
Iは、それらのID
更新に応じて別のテーブルへの結果(合計)を更新する、後Volunteerinfo セットVolunteerinfo.totalhours = dutyrecord.total Volunteerinfo.VolunteerID = dutyrecord.VolunteerID
ありがとうございました。エラー#1093 - 'volunteerinfo'をFROM句の更新に指定することはできません。また、入れ子にされた選択が1時間の合計時間を与えると考えています(同じボランティアID、例えばID:10001合計:15:10、ID:20002合計:1:01:02)。それぞれの場合の動的更新値です。可能であれば不思議 –