2017-07-03 7 views
-1

Ich habe eine Tabelle wie unten in Oracle 11gWie wird die Gesamtarbeitsdauer in Orakel erreicht?

ACT_DTL_ID USER_ID ACTIVITY_TYPE ACTIVITY_TIME 
0000000003 DOC000035 LOGIN   03-07-17 12:35:39.000000000 PM 
0000000004 DOC000035 LOGOUT   03-07-17 12:41:07.000000000 PM 
0000000005 DOC000035 LOGIN   03-07-17 12:41:28.000000000 PM 
0000000006 DOC000035 LOGOUT   03-07-17 12:50:35.000000000 PM 

I Gesamtarbeitsdauer für den Benutzer berechnet werden soll.

Können Sie mir bitte helfen?

+0

Ich half Formatierung. Sie müssen wahrscheinlich eine Summe über die Unterschiede zwischen * aufeinanderfolgenden * LOGIN und LOGOUTs machen ... Jetzt zeigen Sie uns, was Sie versucht haben und wir helfen Ihnen mehr! Lesen Sie [fragen], falls ... –

Antwort

0
select 
    sum((x.activity_time - to_date('01.01.2017', 'DD.MM.YYYY') * decode(x.activity_type,'LOGIN',-1,1)) 
from 
    your_table x 
; 

Dies funktioniert jedoch nur, wenn die Liste mit einem Login beginnt und mit einem Logout endet.

+0

Danke für Ihren Kommentar. Ich möchte mich sofort nach dem Login abmelden. Es kann mehrere An- und Abmeldungen an einem Tag geben. – Gokul

+0

Also funktioniert meine Antwort für Sie? – EasterBunnyBugSmasher

+0

hast du es überhaupt versucht? – EasterBunnyBugSmasher

Verwandte Themen