Hallo liebes Forum,
ich habe mal wieder ein SQL-Problem.
Ich habe eine Tabelle in der ich Stücklisten zusammenstelle.
Zu jedem Eintrag in einer Stückliste gibt es einen Stammdatensatz.
Also eine einfache n:m Beziehung.
Zu jedem Stammdatensatz gibt es zwei Tabellen in denen Preisinformationen stehen KÖNNEN. Jeweils mit einem Datum und einer Einheit (Preis pro Stück, pro 100 Stück).
stammdaten
laufendenummer | name
stueckliste
laufendenummer_stammdaten | laufendenummer_stueckliste
preis1
laufendenummer_stammdaten | datum | preis | einheit
preis2
laufendenummer_stammdaten | datum | preis | einheit
Jetzt möchte ich mir die Srücklisten ausgeben lassen und für jeden Eintrag auch gleich den aktuellesten Preis mit Einheit.
Als Resultat sollte also sowas rauskommen, jeweils für jede Position eine Ergebniszeile die so aussieht:
laufendenummer_stammdaten | preis | einheit | datum
laufendenummer_stammdaten | preis | einheit | datum
laufendenummer_stammdaten | preis | einheit | datum
…
Der Preis kommt aus einer der beiden Tabellen, preis1 oder preis2, aus welcher bestimmt sich über das Datum.
Wie kann ich das lösen.
Ich finde keinen Ansatz.
group by hilft mir nicht, oder?
Ein weiterer Ansatz wäre, dass ich erstmal die beiden jeweils aktuellesten Preise aus den Tabellen entnehme und dann über das Programm, dass dahinter steht auswerten lasse welcher Preis stimmt.
Dann bleibt aber noch die Frage, wie ich das Ergebnis eines Left Join über die Preistabellen auf eine Ergebniszeile pro Stammdatensatz begrenzen kann,wobei dann wieder das Datum ausschlaggebend ist.
laufendenummer_stammdaten | preis1 | einheit1 | datum1 | preis2 | einheit2 | datum2
laufendenummer_stammdaten | preis1 | einheit1 | datum1 | preis2 | einheit2 | datum2
laufendenummer_stammdaten | preis1 | einheit1 | datum1 | preis2 | einheit2 | datum2
…
Ich hoffe ihr habt eine Idee!
Danke für eure Hilfe!
Crypi