Betrachten Sie dieses Spielzeugbeispiel, in dem ich eine sehr einfache SQL-Tabelle mit einigen Artikelnummern, Preisen und Währungen habe. Ich möchte den niedrigsten Preis für jeden Artikel finden.So filtern Sie Zeilen anhand von Kriterien
Hers ist Tabelle PRICELIST
PartNumber Price Currency
1 19 USD
1 10 CAD
1 18 GBP
2 15 USD
2 14 CAD
2 8 GBP
3 5 USD
3 1 CAD
3 11 GBP
ich den niedrigsten Preis mit der Währung angezeigt werden soll. Dies ist der Ausgang Ich möchte:
PartNumber Price Currency
1 10 CAD
2 8 GBP
3 1 CAD
wenn ich sage, select partnumber, min(price) from pricelist group by partnumber
die Abfrage ausführen, aber wenn ich die Währung angeben:
select partnumber, min(price),currency from pricelist group by partnumber
Dann bekomme ich eine Fehlermeldung,:
Ein Ausdruck, der mit "CURRENCY" beginnt, der in einer SELECT-Klausel, HAVING-Klausel oder ORDER BY-Klausel angegeben ist, ist in th nicht angegeben Die GROUP BY-Klausel oder eine SELECT-Klausel, HAVING-Klausel oder ORDER BY-Klausel mit einer Spaltenfunktion und keine GROUP BY-Klausel wird angegeben.
Ich möchte den Währungswert für die Zeile anzeigen, die die niedrigste hat Preis. Was soll ich machen?
Datenbank ist DB2.
By the way, ist dies ein sehr vereinfachtes Beispiel, in meine eigentliche Abfrage habe ich links schließt sich größere Mengen zu erzeugen, wenn das