Wie schreibe ich diese SQL Abfrage?
Ich soll die Abfragen "Welche Mitarbeiter wurden vor 1998 eingestellt" und "Welche Mitarbeiter wurden 1996 eingestellt" erstellen , aber ich weiß nicht genau, wie ich das genau schreiben soll. Irgendwie klappt es bei mir nicht und es liegt an den Schreibweise der des Datums, bzw. der Zahlen. In der Tabelle sind sie wie folgt aufgeschrieben: XX.XX.XX, also bspw. 05.07.96 Beim zweiten habe ich es bisher versucht mit: WHERE eingestellt LIKE '*96', da findet er niemanden, obwohl es in der Abfrage einige Ergebnisse(sprich Mitarbeiter die 1996 eingestellt wurden)geben sollte.
2 Antworten
Wie sieht denn das relationale Schema aus? Weil wenn die Infos verteilt über verschiedene Relationen liegen und man x verschiedene Joins bilden muss, dann ist es etwas schwer dir da eine Antwort zu geben.
Intuitiv würde ich sagen
SELCT Mitarbeiter.name
FROM Mitarbeiter
WHERE Einstellungsdatum < 1996
Nur wenn die Informationen gar nicht in einer Relation liegen, oder du sie dir erst irgendwie berechnen musst, dann wird das so natürlich nicht funktionieren -_-
Irgendwie klappt es bei mir nicht und es liegt an den Schreibweise der des Datums, bzw. der Zahlen.
Normal.....
In der Tabelle sind sie wie folgt aufgeschrieben: XX.XX.XX, also bspw. 05.07.96
Das sieht für dich nach einem String aus, ist aber ein Datumsformat. Und das wird in SQL in einfachen Anführungsstrichen geschrieben. Und da du das Jahr brauchst, solltest du auch via Datepart() das Jahr extrahieren.
Je nach verwendetem SQL-Dielekt/SQL-Server (die unterscheiden sich alle ein wenig) z.B.
WHERE Datepart(year, eingestellt)='96'