我有一个表dutyrecord存储多个用户的工作小时(小计) 和用户ID(志愿者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个SQL语句在不同的演出。)
首先,我选择一个表给我和的工作时间为每个人
SELECT VolunteerID,SEC_TO_TIME(SUM(TIME_TO_SEC(小计)))总计 FROM dutyrecord GROUP BY VolunteerID
eg ID:10001,1时00分02秒ID:2001年,10点00分34秒....
后,我想更新的结果(总)到另一个表中根据自己的ID
更新Volunteerinfo 集Volunteerinfo.totalhours = dutyrecord.total 其中Volunteerinfo.VolunteerID = dutyrecord.VolunteerID
感谢您的快速响应,错误#1093 - 您无法在FROM子句中指定目标表'volunteerinfo'进行更新。此外,我认为嵌套选择将提供1组总小时数(对于具有相同VolunteerID的许多记录,例如ID:10001总计:15:10,ID:20002总计:1:01:02)。所以它是每个案例的动态更新值。不知道是否有可能 –