none
Daten ermitteln RRS feed

  • Frage

  • Hallo

    Ich hoffe ihr könnt mir helfen:

    Ich habe eine Tabelle. In dieser ist in der ersten Spalte das Datum angegeben (jeder Tag, also auch die Wochenenden). Zu jedem Arbeitstag gibt es einen Mitarbeiter, der Früh- und einen der Spätschicht bei der Arbeit hat. Das sieht dann so aus:

    Datum    | Früh | Abend
    28.02.19 | MA1 | MA2
    01.03.19 | MA3 | MA4
    02.03.19
    03.03.19
    04.03.19 | MA3 | MA1
    05.03.19 | MA2 | MA6

    Ich möchte jetzt eine Auswertung machen (z.B. über das ganze letzte Jahr), welcher Mitarbeiter wieviele Frühdienste am Anfang der Woche hatte. Eine Arbeitswoche dauert normalerweise von Montag bis Freitag. Und hier tauchen die Probleme auf. Denn z.B. an Ostern ist der erste Tag der Woche der Dienstag, da Ostermontag kein Arbeitstag ist. Ebenso Pfingsten und sonstige Feiertage. Diese Daten kann man alle berechnen (von Ostern abhängig) oder sind Fix (z.B. Nationalfeiertag).

    Jetzt bin ich auf der Suche nach der einfachsten Lösung, wie ich dieses Auswertung machen kann.

    Ich hoffe, das Problem verständlich erklärt zu haben. 


    Danke und Gruss Thomas

    Montag, 11. März 2019 13:53

Antworten

  • Hallo Thomas

    Ich würde eine zusätzliche Tabelle erstellen mit nur einer Spalte welche der PK ist und das Datum des ersten Arbeitstages enthält. Damit bist du flexibel um dein Bedürfnis eintragen zu können.

    Bei der Abfrage musst du anstelle der Where Bedingung nur ein Join der beiden Datumsfelder einfügen.

    Natürlich muss jeweils zu Beginn eines neuen Jahres diese Tabelle gefüllt werden was aber mit 52 oder 53 Einträgen ja relativ schnell gemacht werden kann.

    Gruss Markus

    • Als Antwort markiert Alphawolfi Mittwoch, 24. April 2019 15:44
    Mittwoch, 24. April 2019 13:47

Alle Antworten

  • Hallo Thomas,

    wo genau liegt nun das Problem? In der Ermittlung der Feiertage? Falls ja, nur die bundesweiten oder je Bundesland?

    Definiere dann bitte auch noch "Anfang der Woche". Ist damit der erste Arbeitstag in der KW gemeint? Oder die ersten beiden?

    Gibt es jeden Tag in deiner Tabelle nur ein einziges mal?

    Und wie soll das Ergebnis anhand deiner Beispieldaten genau aussehen?


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Montag, 11. März 2019 16:35
    Moderator
  • Hallo Stefan

    Danke für Deine Antwort.

    Zuerst zu Deinen Fragen:
    Nur die nationalen Feiertage
    Ja, "Anfang der Woche" ist der erste Arbeitstag der KW gemeint.
    Ja, jeden Tag der Tabelle nur ein einziges Mal.

    Als Resultat will ich die Anzahl Einsätze pro Mitarbeiter am ersten Arbeitstag der Woche.

    Also eigentlich so (pAttendanceDate -> Datum, AttendanceEarly -> Name Mitarbeiter)

    SELECT Weekday([pAttendanceDate]) AS Expr1, tblAttendance.AttendanceEarly, Year([pAttendanceDate]) AS Expr2, Count(tblAttendance.AttendanceEarly) AS CountAttendanceEarly
    FROM tblAttendance
    GROUP BY Weekday([pAttendanceDate]), tblAttendance.AttendanceEarly, Year([pAttendanceDate])
    HAVING (((Weekday([pAttendanceDate]))=2) AND ((Year([pAttendanceDate]))=2018));

    Diese Abfrage stimmt so aber nicht, da der 2.4.18 (Ostermontag) 21.5.18 (Pfingstmontag) in der Abfrage enthalten sind, aber in diesen beiden Wochen der Erste Arbeitstag der Woche am Dienstag ist, da der Montag ein Feiertag ist. Also an diesen beiden Wochen muss der Dienstag ausgewertet werden.

    Je nach dem wie Weihnachten oder der Jahresbeginn fällt kann der erste Arbeitstag der Woche sogar der Mittwoch sein.


    Danke und Gruss Thomas




    • Bearbeitet Alphawolfi Dienstag, 12. März 2019 11:13
    Dienstag, 12. März 2019 10:33
  • Hallo Thomas

    Ich würde eine zusätzliche Tabelle erstellen mit nur einer Spalte welche der PK ist und das Datum des ersten Arbeitstages enthält. Damit bist du flexibel um dein Bedürfnis eintragen zu können.

    Bei der Abfrage musst du anstelle der Where Bedingung nur ein Join der beiden Datumsfelder einfügen.

    Natürlich muss jeweils zu Beginn eines neuen Jahres diese Tabelle gefüllt werden was aber mit 52 oder 53 Einträgen ja relativ schnell gemacht werden kann.

    Gruss Markus

    • Als Antwort markiert Alphawolfi Mittwoch, 24. April 2019 15:44
    Mittwoch, 24. April 2019 13:47
  • Hallo Markus

    Vielen Dank für Deine Rückmeldung.

    Ich bin mittlerweile auch auf diese Lösung gekommen. Ausserdem möchte ich auch den letzten Arbeitstag einer Woche auswerten. Das geht mit dieser Methode ebenfalls.


    Danke und Gruss Thomas

    Mittwoch, 24. April 2019 15:44