Der nachfolgende Select verhält sich nicht erwartungsgemäss, doch ich sehe den Überlegungsfehler nicht. Es geht darum so etwas wie der letzte Verkauf eines Produkts mit Zusatzinformationen aus einer Tabelle heraus zu holen. Hier ein exemplarisches Beispiel und nicht die Originalabfrage, wobei gilt dass ein Produkt pro Tag nur einmal verkauft wird.
SELECT T2.Produkt, T2.Verkaufsdatum, Verkäufer, Lieferort FROM Verkäufe AS T1 INNER JOIN ( SLECT Produkt, MAX(Verkaufsdatum) AS Verkaufsdatum FROM Verkäufe GROUP BY Produkt, Verkaufsdatum ) AS T2 ON (T1.Produkt = T2.Produkt AND T1.Verkaufsdatum = T2.Verkaufsdatum)
Dieser Teil
SLECT Produkt, MAX(Verkaufsdatum) AS Verkaufsdatum FROM Verkäufe GROUP BY Produkt, Verkaufsdatum
gibt z.B 20 Zeilen zurück. Ich erwarte, dass die ganze Abfrage dieselbe Anzahl Zeilen zurück gibt. Aber sie gibt z.B. 100 Zeilen zurück was dem Inhalt der ganzen Tabelle entspricht.
Vielen Dank und Gruss
Andreas