我創建了一個表格(Attendance)來存儲計算結果,並且我正在更新表格以填充大部分計算結果。我需要弄清楚員工(EMP_NB)當天何時離開工作。這是通過TIMEDIFF(ADDTIME(PERIOD, '1:00'), SEC_TO_TIME(Activity_Secs))
計算的。用另一個表格中基於MAX的計算更新表格
我的問題是,我無法弄清楚每個DATE抓取每個EMP_NB的MAX(PERIOD)的方法,同時也抓取相應的Activity_Secs。
TABLEA
╭────────┬──────┬────────┬───────────────╮ │ EMP_NB │ DATE │ Period │ Activity_Secs │ ╰────────┴──────┴────────┴───────────────╯
下面是MySQL的代碼我作出拿到第一期的員工登錄。
UPDATE calc_Attendance AS att, tableA AS a
JOIN (
SELECT
EMP_NB,
DATE,
Period,
Activity_Secs
FROM tableA
GROUP BY EMP_NB, DATE, Period
) m
ON a.EMP_NB = m.EMP_NB and a.DATE = m.DATE and a.Period = m.Period
SET DEPTARTURE_ACTUAL = TIMEDIFF(ADDTIME(m.Period, '1:00'), SEC_TO_TIME(m.Activity_Secs))
WHERE att.EMP_NB = m.EMP_NB AND att.DATE = m.DATE
;
任何幫助將不勝感激。我沒有太多的SQL經驗,所以這讓我瘋狂。
你沒有在你的查詢中對Activity_Secs進行分組。你是否想要獲得這個col的最大值? – Teja 2012-03-06 15:54:18
我需要每個DATE與每個EMP_NB在MAX(PERIOD)相同行的Activity_Secs。 – MikeKusold 2012-03-06 15:57:05
試試我剛剛發佈的那一個... – Teja 2012-03-06 16:02:53