AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

zeitintervall abfrage

Ein Thema von MatthiasK · begonnen am 16. Dez 2015 · letzter Beitrag vom 17. Dez 2015
Antwort Antwort
Seite 3 von 3     123   
Perlsau
(Gast)

n/a Beiträge
 
#21

AW: zeitintervall abfrage

  Alt 16. Dez 2015, 19:44
Das eine schließt doch das andere nicht aus. Dein AG will offenbar zu jeder Stunde einen Bericht über die Produktivität seiner Untergebenen, wie man das z.B. von gewissen Callcentern kennt, wo gleich der oder die Vorgesetzte anrauscht, wenn man nach dem Auflegen nicht sofort die nächste Nummer wählt. Das kannst du ihm doch liefern, auch wenn sich die Pause über die aktuelle Stunde hinauszieht. In diesem fall vermerkst du eben nur den Anteil der Pause, der sich noch innerhalb der Stunde befindet, um im nächsten Bericht den Rest der Pause mit einzubeziehen.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#22

AW: zeitintervall abfrage

  Alt 17. Dez 2015, 06:56
Das Problem ist -wie so oft- das die Datenstruktur eine Auswertung erschwert, wenn nicht sogar unmöglich macht. Am einfachsten wäre es, eine Tabelle aller Minutenzeiten des Tages zu nehmen und mit einer Intervaltabelle zu verknüpfen. Mal sehen
Hmm.
Code:
select t1.Zeit as StartZeit
     , t2.Zeit as EndZeit
     , case when t2.Zeit - t1.Zeit > 10 minuten then 0 else 1 end as Produktiv
  from Tabelle t1 
  join Tabelle t2 on t1.ID = t2.ID-1
Liefert mir eine Tabelle mit Anfangs und Endzeit der Intervalle sowie der Information, ob das Interval Produktivzeit ist, oder nicht. Das mit dem 'case' geht in FB bestimmt anders.
Diese Tabelle nenne ich jetzt mal 'Intervalle'.
Jetzt habe ich eine Tabelle mit einer Spalte, in der einfach alle Datum+Uhrzeiten je Minute drinstehen. Pro Tag sind das 1440 Einträge. Pro Jahr ca. 400.000. Diese Tabelle erstellen wir uns einmal und parken sie in der DB. Wir nennen sie MinutenZeiten.
Nun liste ich mir für jede Minute des Tages auf, ob die Minute produktiv war oder nicht.
Code:
select m.Uhrzeit,
       i.Produktiv
from Minuten m join Intervalle i
 on m.Uhrzeit between i.StartZeit and i.EndZeit
Cool. Fehlt noch das Aggregat
Code:
select DatePart(Stunde, m.Uhrzeit) as Stunde
     , sum (Produktiv) as Produktiv
     , sum (1-Produktiv) as Unproduktiv
from Minuten m join Intervalle i
 on m.Uhrzeit between i.StartZeit and i.EndZeit
Group by DatePart(Stunde, m.Uhrzeit)
Fast fertig. Denn die Auswertung berücksichtigt nicht Arbeitsbeginn und -Ende. Diese Zeiten werden als 'Unproduktiv' markiert. Aus der Intervalltabelle müsste man sich jetzt noch die kleineste StartZeit und die größte Endzeit des jeweiligen Tages nehmen und das im Aggregat berücksichtigen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz