我正在为某些情况而苦苦挣扎...
有一张表,其中我有员工出勤记录,例如:
对于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
特别是,我想要一些带有EmpID
andDATE
参数的 fn/procedure,然后基于这些数据,如果我要写:select proc(EmployeeID, Date) from dual(or maybe some other table?)
它应该做这样的工作:
取表中的第一对(表按默认顺序升序),然后计算从第一个输出(11:23)到第一个输入(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)