Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Wann ist Dienstbeginn? Suche was Schnelleres als UNION Select

Begonnen von DerTutNix, August 31, 2021, 21:12:18

⏪ vorheriges - nächstes ⏩

DerTutNix

Ein Dienstplan liegt in Tabellenform vor und beinhaltet neben der Mitarbeiternummer, Felder für jeden 15 min Abschnitt beginnend von 06:45 – 17:00 Uhr und je ein Ja/Nein Feld welches immer dann ein Ja beinhaltet, wenn das entsprechend zugehörige 15 Minuten-Abschnittsfeld gefüllt ist.

Dieser Dienstplan funktioniert wunderbar, aber die elektronische Zeiterfassung die mit UNION SELECT darauf zugreift rechnet trotz oder wegen der Anwendung von Filtern recht lange. 

Die Tabelle beinhaltet ca 20.000 aktuelle Datensätze in folgender Struktur.

MitarbeiterID, 06:45, 07:00, 07:15... 17:00, 0645YN, 0700YN, 0715YN...1700YN


ID   06:45   07:00   07:15   ..17:00   0645YN   0700YN   0715YN   ..1700YN   
12345   A   A   A   A   -1   -1   -1      
23456      B   B         -1   -1   
   

Was ist jetzt suche ist etwas was schneller ist als eine Unionabfrage um herauszufinden um wieviel Uhr der jeweilige Mitarbeiter zum Dienst erscheinen muss bzw. wann er gehen darf.
Das Endergebnis soll dann wie folgt aussehen

ID   Kommen   Gehen
12345   06:45   17:00
23456   07:00   07:15



jemand eine Idee?

ebs17

ZitatDas Endergebnis soll dann wie folgt aussehen
Die gewünschte Tabelle sollte von einer Zeiterfassung gleich so erstellt werden, da sie
- sehr sicher sehr einfach fortzuschreiben wäre (einfach neuen Datensatz anfügen statt erst eine Abfrageberechnung)
- den nötigen Strukturen in einer Datenbank und deren üblichen Verarbeitungen entspricht

Dieses Ding als Ausgangsbasis solltest Du also einmalig auf die neue Struktur umstellen und dann schnellstmöglich entsorgen.

Danach braucht man sichtbar keine UNION-Abfrage mehr. Zusätzlich werden dann Indizes in der Tabelle sinnvoll und nutzbar, was der Performance einen weiteren Schub geben kann.
Mit freundlichem Glück Auf!

Eberhard

DerTutNix

Danke für die Antwort

Das Problem liegt gar nicht an der Zeiterfassung an sich sondern im Dienstplan, der aufbereitet werden muss, um die Rahnendaten für die Zeiterfassung bereitzustellen.

Ich habe das jetzt so gelöst, dass die benötigten Daten aus dem Dienstplan direkt beim Schreiben des Dienstplanes erzeugt werden und so ohne langes her direkt von der Zeiterfassung gezogen werden können.