| 

.NET C# Java Javascript Exception

2
Hallo zusammen

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.

Was ist hier falsch?

Danke und Gruss
Andreas
News:
07.12.2011
Andreas Schädler 117 1 6
2 Antworten
3
Schnellschuß

SELECT Produkt, MAX(Verkaufsdatum) AS MaxDatum
FROM Verkaeufe
GROUP BY Produkt


Treffer?

lg Ernst
07.12.2011
cybere 353 9
Genau so ist es.
Vielen Dank und Gruss
Andreas
Andreas Schädler 07.12.2011
1
Habe soeben den Fehler gesehen.
SLECT Produkt, MAX(Verkaufsdatum) AS Verkaufsdatum
FROM Verkäufe
GROUP BY Produkt, Verkaufsdatum

Das Verkaufsdatum hat im GROUP BY natürlich nichts verloren.

Gruss und einen schönen Tag
Andreas
07.12.2011
Andreas Schädler 117 1 6

Stelle deine Mssql-Frage jetzt!