Spørgsmål til overlappende tidsstempl beregning. (den god udfordring)
Hej, Jeg sidder med en opgave i SQL, hvor jeg skal udregne den total effektive arbejdstid pr medarbejder + den gennemsnitlig behandlingstid pr medarbejder ud fra et dataset omkring en chat applikationen.
Problemet er at data kan overlappe, da der kan chattes med flere på en gang. Mit dataset viser blot et start og et slut tidspunkt pr sag, hvilket betyder at jeg ikke bare kan udregne arbejdstiden + behandlingstiden ved blot at trække de to tidsstempler fra hinanden.
Mit data set kan eksempelvis se således ud
ID Starttid Sluttid Medarbejder ID1 08:10:21 08:12:33 X ID2 08:11:12 08:14:12 X ID3 08:10:11 08:17:13 X
Jeg har altså behov for at udregne den faktuelle behandlingstid for ID1, ID2 og ID3.
Håber det sidder som kan gennemskue løsningen på dette problem.
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
Hvis de kan overlappe hinanden ? Hvordan vil du så have udregnet den effektive tid? er det den de hvor de ikke har haft en kunde opgave? Du må gerne define den ...
Den anden kan du jo bare tage de 3 kundesager og så devider med 3 ... eller hvad er problemet ?
Jeg har behov for at vide hvor lang tid den enkle medarbejder har brugt på den enkle sag. Det vil altså sige, at såfremt medarbejder arbejde på en anden sag mens den først stadig er åben skal denne tid modregnes.
Hej Jamen det er faktisk problemet.... Det er nemt nok at se udregne at der er samlet brugt 0:12:14 min på opgaverne. Men eksempelvis så har chatten med ID2 foregået undervejs mens ID3 har været åben. Det vil altså sige, at ID3 behandlingstid sådanset ikke er 00:07:02 men istedet 00:04:02. Samtidig har ID1 været behandlet men ID3 var åben. Her skal vi således regne 10 sek yderelige fra, da resten af tiden er modregnet i ID2.
Er du med?
ID Starttid Sluttid Medarbejder Behandlingstid ID1 08:10:21 08:12:33 X 00:02:12 ID2 08:11:12 08:14:12 X 00:03:00 ID3 08:10:11 08:17:13 X 00:07:02
Jeg vil anbefale dig at udlæse data i et eller andet programmeringssprog efter eget valg, og så bruge de if sætninger, løkker osv. det kræver.
Hvis du så går i stå, kan du oprette en ny tråd under det forum der hører til dit programmeringssprog.
Men lige kort. Du skal finde alle de tider der er overlappende. For hver skal du til dele en % del eller en brøkdel, så er der to der hedder f.eks. 08.10 - 08.12 08.11 - 08.14 Så er der et overlap på 1 minut, hvor dette ene minut deles med 30 sekunder per kunde, og resten er tiden unik for kunden. Så du får en tid på første kunde der hedder: 2 minutter - 30 sekunder = 1min 30sec og anden kunde: 3 minutter - 30 sekunder = 2min 30sec
#mbc Nu er det jo ikke sådan han beskriver sit problem.
Sidste kunde i køen skal ikke betale hvis der var en anden kunde i gang da der kom en ny kunde. Han har ikke skrevet tiden skal deles mellem de kunder som er der på samme tid.
Men det andet burde også kunne lade sig gøre i SQL, men der mangler stadig for mange info til at jeg kan sige det præcist.
Men der er ingen tvivl om det ville være nemmere i et programmerings sprog ... da databaser er til data og ikke logik.
#soren_aakjaer Men hvorfor regne det ud på den måde, nu bliver jeg nød til at sprøge? Er lidt nysgerig omkring det ....
mvh
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.