SQL-Abfrage

dw_tel

Neuer Benutzer
Beiträge
2
Hallo

ich habe eine MariaDB in Version 10.1.26 am laufen.
Dazu ein phpMyAdmin 4.6.6

Sitution:
Wir haben eine Firma bei denen die Mitarbeiter sich frühs einchecken sollen und abends auschecken.
Demnach gibt es pro Mitarbeiter und pro Tag 2 Einträge (Zeit etc...)
Aber immer mit einer fortlaufenden ID....beim einchecken könnte demnach die ID 5 vergeben worden sind und beim auscheckcen die ID 75, dazwischen haben sich weitere Mitarbeiter eingecheckt bzw. ausgecheckt.

Angenommen ich will die ID´s überprüfen ob auch wirklich jede ID vorhanden ist bzw. eine fehlt.

Hat jemand dazu eine Idee....quasi suche ich aus einer spalte die fehlenden ID´s eines fortlaufenden Ereignisses.

Grüße und Dank vorab.
 
Werbung:
Du hast doch sicherlich/hoffentlich noch eine Spalte für den Mitarbeiter, oder? Also sowas z.B.:

Code:
test=*# select * from dw_tel;
 id | mitarbeiter |        kommt        |        geht        
----+-------------+---------------------+---------------------
  1 |           1 | 2018-06-06 06:00:00 |
  2 |           2 | 2018-06-06 06:30:00 |
  3 |           3 | 2018-06-06 06:40:00 |
  4 |           2 |                     | 2018-06-06 16:40:00
  5 |           3 |                     | 2018-06-06 16:50:00
(5 Zeilen)

Und nun suchst Du wohl sowas wie:

Code:
test=*# select k.mitarbeiter, k.kommt, g.geht from (select mitarbeiter, kommt from dw_tel) k left join lateral (select mitarbeiter, geht from dw_tel where mitarbeiter=k.mitarbeiter and geht > k.kommt order by geht limit 1) g on true where kommt is not null;
 mitarbeiter |        kommt        |        geht        
-------------+---------------------+---------------------
           1 | 2018-06-06 06:00:00 |
           2 | 2018-06-06 06:30:00 | 2018-06-06 16:40:00
           3 | 2018-06-06 06:40:00 | 2018-06-06 16:50:00
(3 Zeilen)

test=*#
 
Ja ich weiß, die 2te Variante wäre besser...
aber ich hatte nur dies versucht an einem Beispiel zu erklären, dass es fortlaufend ist...

Angenommen bei 50 Mitarbeitern, müssten 100 Einträge pro Tag geschrieben werden...
somit wäre es "einfach" zu prüfen ob die 100 Einträge vorhanden sind...hm na das jetzt bissl doof...aber bei uns erfüllts halt so den Zweck...
 
Werbung:
Also ich würde auch einen Datensatz für kommen und gehen machen, das würde vermutlich die ganze Anwendung vereinfachen.

Ansonsten bin ich mir nicht ganz sicher ob ich das Problem richtig verstanden hab.
Ich nehem mal an das du zwei Tabellen hast.
Tabelle 1 - Mitarbeiter
Tabelle2 - Arbeitszeit zum Beispiel
Jetzt kannst du doch auf die Arbeitszeiten Joinen und mittels Count prüfen ob du zwei einträge hast und wenn du das pro tag machen möchtest kannst du mit Between wenn du zum Beispiel den Timestamp drin stehen hast prüfen
 
Zurück
Oben