これを解決するのを手伝ってください。
ユーザーのチェックイン (checktype = I) とチェックアウト (checktype = 0) の時間を毎日含むテーブルがあり、特定の午前 08:00 を超えるユーザーごとのチェックイン時間の合計を取得したいと考えています。日付範囲。
以下のクエリを使用していますが、範囲外のクエリごとに 1 日しか処理しないため、JavaScript を使用してループし、ユーザーごとの遅延 (> 08:00 AM) を取得する必要があります (たとえば、2012 年 1 月 6 日から 2012 年 1 月 6 日まで)。 2012/06/06
単一のクエリで、ex:01/06/2012 から 06/06/2012 までのユーザー (例: userid 708) ごとの 08:00 AM を超える金額 (カウント) チェックイン時間を取得するのを手伝ってください。
with tt as
(
select TO_DATE('01/06/2012 08:00:00','dd/mm/yyyy hh24:mi:ss') date1 ,
checktime date2
from
checkinout
where
userid = '708' and
to_char(checktime,'dd/mm/yyyy') = '01/06/2012' and
checktype='I' -- checktype I is check in
) , t2 as
(
select numtodsinterval(date2 - date1,'day') dsinterval from tt
)
select extract(hour from dsinterval) || ' hours ' ||
extract(minute from dsinterval) || ' minutes ' ||
round(extract(second from dsinterval)) || ' seconds' late from t2