j’ai une table d’un produit X, distribué ds Y endroit, dont je souhaiterai suivre l’evolution du prix… en mettant en priorité la date du dernier enregistrment… de manière a voir les prix les plus recent. et après, trier par prix…
histoire de ne pas avoir une prix datant de plusieurs mois, donc certainement plus à jour…
SELECT produit.idsshop,produit.prix,produit.date,shop.id,shop.marque,shop.adresse FROM produit,shop WHERE shop.id=produit.idshop ORDER BY date,prix ASC LIMIT 0,1
quand je mets ORDER BY date, prix il ne tri pas par date…
avec ORDER BY date c’est bon… mais comment faire les 2 en meme temps?
bref je souhaite après le prix recent de chaque shop, et ensuite trier par prix…
Le plus récent? ORDER BY date DESC mais si tu ajoute un tri sur le prix, tu ne feras que mettre devant les prix les plus bas pour les dates identiques.
et pour eviter les doublons, eviter d’avoir des anciennes dates sur un meme shop ?
c’est bien DISTINCT?
SELECT DISTINCT produit.idsshop,produit.prix,produit.date,shop.id,shop.marque,shop.adresse
FROM produit,shop
WHERE shop.id=produit.idshop
ORDER BY date,prix ASC
LIMIT 0,1
mais comment dire que l’on veut un DISTINCT sur l’idshop?
il faut que tu tri la date dans l’ordre décroissant => date DESC, puis le prix dans l’ordre que tu veux.
Donc date DESC, prix DESC ou date DESC, prix ASC
SELECT produit.idsshop,produit.prix,produit.date,shop.id,shop.marque,shop.adresse
FROM produit,shop
WHERE shop.id=produit.idshop
GROUP BY idshop
ORDER BY date,prix ASC
LIMIT 0,1
limite bien à une ligne par idstation… mai pas la bonne. les dates ne sont pas les dernieres…
alors que :
SELECT produit.idsshop,produit.prix,produit.date,shop.id,shop.marque,shop.adresse
FROM produit,shop
WHERE shop.id=produit.idshop
ORDER BY date,prix ASC
LIMIT 0,1
liste correctement: tri par date (plus recente > plus anciennes) suivi du prix (du - au +).
comment se fait il qu’il zappe le premieres lignes?