2017-08-10 19 views
0

私は複数のサプライヤとの価格比較表の作成に苦労しています。MySQL価格比較

テーブルには、次の列を持っている - それを呼び出すことができますがTABLE1:

|name |partnumber |supplier |cost 
CD  11A   East  10.00 
USB  BBB   West  101.10 

結果/差ビーイング:私は何を達成したいことはTABLE1のためである

|name |partnumber |supplier |cost 
CD  11A   West  10.11 
CD  11A   East  10.00 
USB  BBB   North  125.01 
USB  BBB   West  101.10 

次を表示しますテーブルには、最も安い価格で製品を提供しているサプライヤに関連する列のみが表示されます。

私に手を差し伸べる人がいますか?それは私の頭をしています。

あるいは、私はまた、各サプライヤの価格列を持つ別のテーブルを作成しましたが、それはデータベースの標準化ではなく、よく書かれたクエリやパフォーマンスのために作成されません。

ありがとうございました!

+0

の最小のコストを見つけるの列は、製品を特定することができ、説明してください。 –

答えて

0

あなたがグループに(名前と部品番号)によって結果が必要

SELECT a.name , a.partnumber , a.supplier , a.cost FROM table1 a JOIN (
    SELECT name , partnumber , MIN(cost) cost 
    FROM table1 
    GROUP BY name , partnumber 
) b ON a.name = b.name AND a.cost = b.cost AND a.partnumber = b.partnumber 

を必要とするものを、このクエリと、各グループ

+0

私はpartnumberでグループ化しますが、それはおそらくより信頼できます。 –

+0

ちょうどそれを行った、編集を確認 – Ali

+0

@Noob申し訳ありませんが、私はあなたを取得していません。 'HAVING'をどうすれば使えますか? – Ali

関連する問題