SQL - Ident_nr darf kein Datensatz über Datum X haben

wanapa

Grünschnabel
Hallo zusammen,

ich habe folgendes Problem:

ich suche im Lager nach Teile, die nach einem bestimmten Zeitpunkt keine Lagerbewegungen mehr hatten (z.B. nach 2011)

bisher habe ich nur folgendes gefunden: "!>" (Select Ident_nr ... where datum !> '12.31.2011') das funktioniert bei mir jedeoch nicht. Ich bekomme für diese Eingabe eine Systax-Error-Meldung. Wobei das auch nicht die Lösung sein kann, da die späteren Datensätze ausgeschlossen werden und nicht die Ident_nr.

Damit es vllt. klarer ist was ich machen möchte:

2 Teile:

Teil1: Lagerbewegungen im Jahr 2010, 2011, 2012 -> soll nicht erscheinen
Teil2: Lagerbewegungen im Jahr 2010, 2011 -> soll erscheinen

ich kann also nicht ">="/"<=" benützen, da ich dann auch Bewegungen von Teile bis 2011 ausgebe, die vielleicht auch in 2012 noch weitere Buchungen hatten.

Ich muss also alle ->Teile<- ausschließen die nach 2011 noch Datensätze haben, nicht nur die Datensätze in 2012.

Ich hoffe, ich habe ein Anliegen verständlich gung geschildert ;)

Hat jemand eine Idee, wie ich das hinbekommen kann?

MfG Nima
 
ich drück auf senden und schon fällt mir was ein. Könnte es vllt so funtionieren:

select ident_nr, max(datum)
from lagerjournal
group by 1
having max(datum) <= '12.31.2011'

Bin mir gerade nicht sicher, da ich in der Ausgabe viel mehr Teile erwartet habe.
 
Bei MySQL, MS Access und Oracle SQL funktioniert das NOT

SQL:
WHERE NOT id = 1

Aber zu deinem Problem. Gruppieren und das Max-Date bestimmen. Dieses muss Kleiner als dein Vergleichsdatum sein
SQL:
SELECT
	Ident_nr
FROM
	myTable
GROUP BY
	Ident_nr
HAVING
	MAX(datum) <= '12.31.2011'
 
Zuletzt bearbeitet von einem Moderator:
Danke für die schnelle Hilfe.

Ich muss die ganzen anderen Bedingungen noch einbauen und schauen, ob da was brauchbares bei raus kommt.

Ich sag dann später bescheid.
 
Zurück