У меня есть таблица служебных записей, в которой хранятся рабочие часы нескольких пользователей (промежуточный итог) и идентификатор пользователя (идентификатор добровольца).С помощью следующего оператора выбора я собираюсь установить общее количество часов для каждого идентификатора пользователя:
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`
Может кто-нибудь помочь мне в этом?
ОБНОВЛЕНИЕ
Извините, несколько попытоки другие примеры я выясняю ответ и более понятный способ задать свой вопрос.Чтобы очистить мой вопрос: могу ли я объединить этот процесс в один, так как я хочу сделать этот язык процесса независимым?(Я просто ношу 1 оператор SQL в разных исполнениях.)
Сначала я выбираю таблицу, чтобы дать мне сумму рабочих часов для каждого человека
SELECT VolunteerID,SEC_TO_TIME (SUM (TIME_TO_SEC (SubTotal))) в качестве итоговой суммы от записи обязанностей GROUP BY VolunteerID
например, ID: 10001, 1:00:02 ID: 2001, 10:00:34 ....
После этого я хочу обновить результат (всего) в другую таблицу в соответствии с их идентификатором
обновить Volunteerinfo set Volunteerinfo.totalhours = dutyrecord.total где Volunteerinfo.VolunteerID = dutyrecord.VolunteerID