2017-10-09 3 views
0

私が探している最低価格を見つける正しい方法(私の3回目の試み)を使うと思いますが、私は正しい答えを得られません。いくつかのアドバイスが必要です!min()がsqlite3で動作しない

私はストレージという名前のテーブルを持っているが、次のようになります。

storeNum productNum unitPrice 
     1   p1   3.3 
     1   p2   4.9 
     2   p1   3.6 
     3   p1   4.9 
     4   p2   4.9   

私は、各製品の最低価格と製品を持って店を見つけようとしています。

select storeNum, productNum, unitPrice 
from storage, (select min(unitPrice) as minim from storage group by 
productNum) as mint 
where carries.uprice=mint.minim 

select storeNum, productNum, min(unitPrice) 
from storage 
group by storeNum, productNum 

結果は同じです:

storeNum productNum unitPrice 
     1   p1   3.3 
     1   p2   4.9 
     3   p1   4.9 
     4   p2   4.9 

p1が唯一の最低価格を持っている必要がありますが、それはしない は、ここに私の第一及び第二の試みです。だから私はそれをGoogleやthisを読んで、私の3回目の試みがあります。

select storeNum, productNum, unitPrice 
from storage 
where unitPrice=(select min(unitPrice) from storage group by productNum) 

結果をされて混乱を:(と私は私のコードが悪いのか分からない

を私が望む結果は次のとおりです。

storeNum productNum unitPrice 
     1   p1   3.3 
     1   p2   4.9 
     4   p2   4.9 

は、実際にいくつかの助けを必要とコーディングは、私が思ったよりも難しいです

答えて

0

お店を検索するために、製品と価格の両方を使用する必要がありますので、あなたは、製品ごとに最低価格を持っている:。。

SELECT storeNum, productNum, unitPrice 
FROM storage 
JOIN (SELECT productNum, 
      min(unitPrice) AS unitPrice 
     FROM storage 
     GROUP BY productNum 
    ) USING (productNum, unitPrice); 
+0

回答ありがとうございますが、USING部分が何らかのエラーを起こしています。心配しないで、コードを修正しました。 – hhh

関連する問題