2017-10-09 15 views
0

Je pense que j'utilise la bonne méthode (ma troisième tentative) pour trouver le prix minimum que je cherche, mais je ne comprends pas la bonne réponse. Besoin de conseils!min() ne fonctionne pas dans sqlite3

J'ai une table de stockage nommée, ressemble à ceci:

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

Je suis en train de trouver le prix le plus bas de chaque produit et le magasin qui a le produit. Voici ma première et la deuxième tentative:

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 

Les résultats sont les mêmes:

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

p1 devraient avoir qu'un seul prix le plus bas, mais il ne fonctionne pas. Donc, je google et lire this et avoir ma troisième tentative.

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

Le résultat est un gâchis :(et je ne sais pas quel est le problème avec mon code

Le résultat est que je veux:

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

vraiment besoin d'aide pour le codage est plus difficile que je pensais

Répondre

0

vous avez un prix minimum par produit, vous devez donc utiliser à la fois le produit et le prix pour la recherche des magasins:..

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

Merci d'avoir répondu, mais cela ne fonctionne pas car la partie USING exécute une erreur. Pas de soucis, j'ai corrigé mon code. – hhh