Expandable
2007-08-02, 15:45:44
Hallo allerseits,
ich stehe gerade voll auf dem Schlauch: Ich habe eine Tabelle, die so aussieht:
ID uniqueidenitifer
productID uniqueidntifier
vendorID uniqueidentifier
price decimal
date datetime
Jeden Tag wird für ein Produkt für jeden Händler ein Preis eingetragen. D.h., ich habe für einen gewissen Tag mehrere Einträge mit der gleichen productID und unterschiedlichen vendorIDs.
Ich möchte nun eine Preis-Historie des Minimalpreises auslesen. Nur: Wie?
SELECT MIN(price) AS price, CAST(CONVERT(VARCHAR(10), date, 111) AS DATETIME) AS date
FROM pe_prices
WHERE (productID = @productID)
GROUP BY CAST(CONVERT(VARCHAR(10), date, 111) AS DATETIME)
Liefert mir für jeden Tag den niedrigsten Preis. Aber ich brauche auch noch die Vendor-ID! Ich kann diese jedoch nicht in's SELECT mit aufnehmen, weil die dazu in der Group-By-Clause sein muss (oder ebenfalls Teil einer aggregate function sein muss). Nur macht mir das das Ergebnis kaputt (falls mehrere Händler den gleich-niedrigsten Preis haben, werden mehrere Rows zurückgeliefert - es soll aber auch dann nur eine Row geliefert werden, mit egal welchem Händler).
Kann mir jemand weiterhelfen? Wo ist mein Denkfehler?
Danke,
- Expandable
ich stehe gerade voll auf dem Schlauch: Ich habe eine Tabelle, die so aussieht:
ID uniqueidenitifer
productID uniqueidntifier
vendorID uniqueidentifier
price decimal
date datetime
Jeden Tag wird für ein Produkt für jeden Händler ein Preis eingetragen. D.h., ich habe für einen gewissen Tag mehrere Einträge mit der gleichen productID und unterschiedlichen vendorIDs.
Ich möchte nun eine Preis-Historie des Minimalpreises auslesen. Nur: Wie?
SELECT MIN(price) AS price, CAST(CONVERT(VARCHAR(10), date, 111) AS DATETIME) AS date
FROM pe_prices
WHERE (productID = @productID)
GROUP BY CAST(CONVERT(VARCHAR(10), date, 111) AS DATETIME)
Liefert mir für jeden Tag den niedrigsten Preis. Aber ich brauche auch noch die Vendor-ID! Ich kann diese jedoch nicht in's SELECT mit aufnehmen, weil die dazu in der Group-By-Clause sein muss (oder ebenfalls Teil einer aggregate function sein muss). Nur macht mir das das Ergebnis kaputt (falls mehrere Händler den gleich-niedrigsten Preis haben, werden mehrere Rows zurückgeliefert - es soll aber auch dann nur eine Row geliefert werden, mit egal welchem Händler).
Kann mir jemand weiterhelfen? Wo ist mein Denkfehler?
Danke,
- Expandable