我有一個表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)。所以它是每個案例的動態更新值。不知道是否有可能 –