SQL Wer wie lange Mitarbeiter?


19.11.2021, 09:04

Hier die ersten Zeilen der Tabelle (ist nur eine kleine Übungstabelle)

Theoretisch müsste ja stand heute das Ergebnis dann wie folgt sein:

Jahr | Anzahl der Mitarbeiter

1 | 2

2 | 1

3 | 0

4 | 1

3 Antworten

Es gibt die Funktion Year() mit der du das Jahr aus einem Datum extrahieren kannst:

Select count (*), Year (Eintrittsdatum) from Tabelle
Group by Year (Eintrittsdatum)
Woher ich das weiß:Berufserfahrung – arbeite seit vielen Jahren in der IT
Kamaid 
Fragesteller
 19.11.2021, 09:19

Aber da bekomme ich dann nur raus, wer im Jahr 2021 oder 2020 eingetreten ist. Ich möchte ja stand heute 1,2,3,4 Jahre zurück gehen. Also würde beispielsweise das erste Jahr von 19.11.2021 bis 19.11.2020 gehen. Ich hoffe du verstehst was ich meine

0

SELECT FLOOR(DATEDIFF(NOW(),`Eintrittsdatum`)/365.25) AS `Jahre`, COUNT(FLOOR(DATEDIFF(NOW(),`Eintrittsdatum`)/365.25)) AS `Anzahl` FROM `Mitarbeiter` WHERE 1 GROUP BY `Jahre` ORDER BY `Jahre`;

Ist durch die Teilung durch die Tage im Jahr nicht 100% exakt, aber für den Überblick denke ich OK.

Kamaid 
Fragesteller
 19.11.2021, 09:57

Danke, genau so ähnlich hab ich es mir schon gedacht !

0
Kamaid 
Fragesteller
 23.11.2021, 08:40

Das Where 1 verwirrt mich noch, worauf bezieht sich die 1?

0
showgirl1  23.11.2021, 15:06
@Kamaid

Das sagt im Prinzip nichts aus. Das setzt phpMyAdmin z.B. automatisch, wenn man eine SQL Abfrage erstellt. Es bedeutet soviel wie True - die Bedingung ist also immer Wahr. So hat es den Vorteil, wenn man noch eine Bedingung einfügen möchte weiß man gleich wo die hin gehört. Kannst du also auch genau so gut weglassen. Ich habs eben nicht ausgelöscht.

1

Es wäre hilfreich, wenn wir die originale Tabelle mit einigen Zeilen sehen können. Dann kann man basierend darauf überlegen, wie man welche Daten anzeigt.

Woher ich das weiß:Berufserfahrung – IT Support, Studium & Hobby