Я борюсь с некоторыми случаями ...арифметических операции над значениями Даты в Oracle
есть таблица, в которой у меня есть записи о посещаемости сотрудников, например:
для empID=1
;
empID time Type date
-------------------------------
1 9:22 in sameday
1 11:23 out sameday
1 14:35 in sameday
1 16:21 out sameday
В частности, я хочу некоторые Fn/процедуру, которая будет принимать EmpID
и DATE
параметры, а затем на основе этих данных, если я напишу: select proc(EmployeeID, Date) from dual(or maybe some other table?)
он должен делать такую работу:
принять первый пары в таблице (таблица упорядочена по возрастанию, как по умолчанию), затем вычисляйте FROM first OUT (11:23) до первого IN (9:22) времени, сохраните это время где-нибудь (int tempResult), а затем вычислите вторую пару и вычислите второй tempResult и в finalResult, он должен подсчитать общее время, например finalResult+=finalResult+tempResult
(если это была итерация в цикле);
Я думаю, что это будет сделано как-то вроде, в foreach (или что-то другое в pl/sql oracle), сначала выберите с верхним результатом, затем, во втором .. и так далее ... и на каждой итерации вычислите желание Цель.
так что логика в порядке со мной Я думаю :), но проблема в том, что я не знакома с PL/SQL, если бы она была написана на Java, она должна была стать легкой для меня.
Я заплачу много Благодаря какой-то, кто поможет мне ...
его значение для меня день.
благодарит заранее.
У меня есть дата и время отдельные столбцы, например:
date time
----------------------
11-09-2013 12:34
так, я сделал небольшое изменение, как этот
FOR rec IN
(SELECT t.EID, to_char(t.devent_date, 'DD.MM.YY') ||' '|| t.RegTime, t.acttype from turnicate_ie t WHERE t.EID = i_emp_id ORDER BY t.EID
)
LOOP
, но утверждает, что пакет или функция в некорректный состояние ...
(t.devent_date is 11.09.2013, t.RegTime is 16:23)
Если это проще сделать на Java, почему вы хотите сделать это в PL/SQL? –