Bonjour,
J'ai une question qui me taraude depuis un moment et à laquelle je n'ai pas trouvé de réponse sur Internet. Mais il est fort possible que j'utilise les mauvais mots clés. Je cherche depuis déjà très longtemps, et je vais continuer de chercher, mais en attendant voici ma question :
Comment faire pour trier des résultats MySQL sur une colonne dont la valeur est le résultat d'un calcul ?
Exemple concret:
1 table produits avec : produit_id, produit_nom, produit_cout
1 table marges avec : marge_id, marge_valeur, produit_id
1 table ecotaxes avec : ecotaxe_id, ecotaxe_valeur, produit_id
Soit la requête suivante :
Cette requête fonctionne très bien, mais si je lui ajoute la clause suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT p.produit_id AS 'Id', p.produit_nom AS 'Nom', p.produit_cout AS 'Cout de revient', ( (p.product_cout/(1-(m.marge_valeur/100)) + e.ecotaxe_valeur ) AS 'Prix de vente' FROM produits p LEFT JOIN marges m ON p.produit_id=m.produit_id LEFT JOIN ecotaxes e ON p.produit_id=e.produit_id
Ca ne marche plus. PhpMyAdmin m'affiche alors le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2ORDER BY 'Prix de vente' ASC
Est-il seulement possible de trier ce type de requête sur la dernière colonne ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY 'Prix de vente' LIMIT 0, 30' at line 1
Ah... Je viens de trouver ce qui devrait être LA source d'information:
http://dev.mysql.com/doc/refman/5.0/...culations.html
Mais j'ai beau lire et relire, je ne vois pas ce que je fais de différent, à part les apostrophes pour encadrer les alias (ce qui me semble d'ailleurs plus propre), mais même en les supprimant je n'obtiens rien de mieux.
Merci d'avance aux bonnes âmes qui me feront avancer dans la quête du savoir absolu !![]()
Partager