2017-04-09 12 views
-1

Ich versuche eine SELECT-Abfrage zu schreiben, die den niedrigsten Rechnungsbetrag jedes Lieferanten in der Tabelle unten zeigt. Ich habe ein paar Lösungen versucht, aber ich kann es nicht verstehen! Kann jemand helfen? Vielen Dank im Voraus. enter image description hereMySQL den höchsten Betrag auswählen

Antwort

0

Für den niedrigsten invoice_price von SUPPLIER_NAME Sie Aggregationsfunktion MIN mit Gruppe von

select supplier_name, min(invoce_price) 
from my_table 
group by supplier_name 
0

Verwenden min Aggregationsfunktion mit group by-Klausel

select supplier_name, min(invoice_price) from table_name group by supplier_name 

Ebenso erhalten die höchste Menge verwenden, Verwenden Sie die maximale Aggregationsfunktion

select supplier_name, max(invoice_price) from table_name group by supplier_name 
0

Wenn Sie Spalten wie die Rechnungsnummer/das Datum möchten, müssen Sie 2 Abfragen schreiben, ich schreibe normalerweise eine tmp Tabelle für diese Art von Aufgabe.

Sie können mehrere Rechnungen pro Lieferant erhalten, wenn mehrere Rechnungen mit demselben Rechnungspreis vorliegen. Sie können dies umgehen, indem Sie einen anderen Join verwenden, wenn Sie eine bestimmte (z. B. die letzte relevante Rechnung) benötigen, oder indem Sie einfach die relevanten Spalten gruppieren und MIN() erneut auf dem invoice_price verwenden.

0

Die Antwort ist ganz einfach:

SELECT SUPPLIER_NAME, MIN(INVOICE_PRICE) 
FROM SUPPLIER_INVOICES 
GROUP BY SUPPLIER_NAME; 
Verwandte Themen