2017-04-09 7 views
-1

私は、下の表の各サプライヤの最低請求金額を表示するSELECTクエリを作成しようとしています。いくつかのソリューションを試してみましたが、私の頭の中でそれを得ることはできません!誰も助けることができますか?前もって感謝します。あなたが最高額を得るために句MySQLが最高額を選択

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

によってグループと

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

答えて

0

、最大集約関数を使用する

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

使用分集計関数によってグループで集計関数MINを使用することができますsupplier_nameによって最低invoice_priceについては enter image description here

0

請求書の番号/日付のような列が必要な場合は、2つのクエリを書く必要があります。私は通常、このようなタスクのためにtmpテーブルを作成します。

DROP TEMPORARY TABLE IF EXISTS tmp_min_value; 
CREATE TEMPORARY TABLE tmp_min_value AS 
SELECT [key columns eg. supplier], min(invoice_price) as min_invoice_value 
FROM supplier_invocies 
GROUP BY [key columns eg. supplier]; 

SELECT is.* 
FROM supplier_invoices si 
INNER JOIN tmp_min_value tmv 
    ON si.supplier_name = tmv.supplier_name 
    AND si.invoice_price = tmv.min_invoice_value; 

同じ請求書価格で複数の請求書がある場合は、仕入先ごとに複数の請求書を受け取ることがあります。特定の(たとえば最後に関連する請求書など)必要な場合は別の結合を使用するか、関連する列をグループ化してinvoice_priceでMIN()を使用するだけで、これを取り除くことができます。

0

答えは非常に簡単です:

SELECT SUPPLIER_NAME, MIN(INVOICE_PRICE) 
FROM SUPPLIER_INVOICES 
GROUP BY SUPPLIER_NAME; 
関連する問題