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 :
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
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
 
ORDER BY 'Prix de vente' ASC
Ca ne marche plus. PhpMyAdmin m'affiche alors le message d'erreur suivant :
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
Est-il seulement possible de trier ce type de requête sur la dernière colonne ?

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 !