0

私はいくつかのケースに苦労しています...

たとえば、従業員の出席記録があるテーブルがあります。

のために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)
4

1 に答える 1