私はいくつかのケースに苦労しています...
たとえば、従業員の出席記録があるテーブルがあります。
のために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
特に、 andパラメーターを受け取るいくつかの fn/procedure が必要ですDATE
。次に、このデータに基づいて、次のように記述select proc(EmployeeID, Date) from dual(or maybe some other table?)
します。
テーブルの最初のカップルを取り (テーブルはデフォルトの順序で昇順に並べられています)、FROM first OUT (11:23) から最初の IN (9:22) までの時間を計算し、その時間をどこかに保存して (int tempResult)、2 番目のカップルを計算します。 2番目のtempResultを計算し、finalResultで、合計時間をカウントする必要finalResult+=finalResult+tempResult
があります(ループ内の反復であった場合)。
foreach(またはpl / sql oracleにあるものは何でも)で、最初に上位の結果を選択し、次に2番目に..などのように実行されると思います...そして各反復で欲望の目標を計算します。
だから..ロジックは私には大丈夫だと思います:)、しかし問題は、私が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)