Имейте в виду, что использование ctrl + k позволит вам печатать, используя строки кода, что поможет вам выровнять все.
Я говорю это, потому что мне потребовалось около часа, чтобы полностью понять, что выразмещены сверху.Строка ниже:
emp_id emp_did emp_date emp_time emp_dept emp_mode 1 mike 20140819 201040 security 5 1 mike 20140820 051005 security 4 2 tess 20140819 074910 hr 5 2 tess 20140819 171011 hr 4
переводится в:
emp_id emp_name emp_date emp_time emp_dept emp_mode
1 mike 2014/08/19 20:10:40 security 5
1 mike 2014/08/20 05:10:05 security 4
2 tess 2014/08/19 07:49:10 hr 5
2 tess 2014/08/19 17:10:11 hr 4
Это дало мне лучшее понимание того, чего вы пытались достичь.
но мы все живем и учимся.Я думаю, что вы ищете что-то вроде следующего оператора SQL.
SELECT HourCalc.emp_id, HourCalc.emp_name, HourCalc.StartDateTime, HourCalc.EndDateTime, DateDiff('n',[startdatetime],[enddatetime])/60 AS HrsWorked
FROM (SELECT t1.emp_id, t1.emp_name, CDate([emp_date] & ' ' & [emp_time]) AS StartDateTime,
(SELECT MIN(cdate(t2.emp_date & ' ' & t2.emp_time))
FROM emptable t2
WHERE t2.Emp_id = t1.Emp_ID
AND cdate(t2.emp_date & ' ' & t2.emp_time) > cdate(t1.emp_date & ' ' & t1.emp_time)
AND emp_mode = '4') AS EndDateTime
FROM emptable AS t1
WHERE (((emp_mode) = '5'))) as HourCalc;
В каждом предложении where, если ваш emp_mode является типом данных числового поля, просто удалите одинарные кавычки вокруг чисел 4 и 5.
Возможно, это не тот макет, который вы разместили в своем вопросе, но он должен поставить вас на правильный путь.
Если это не сработает, дайте мне знать, и мы сможем сделать больше копанийчтобы найти правильную инструкцию SQL, которую вы ищете.