Bonjour,
je m'attendais à avoir, pour les 2 requêtes suivantes, le même résultat.
Or il n'en est rien.
Quelle est la bonne maniere de procéder ? Sachant, que pour une question d'évolutivité, j'aurais tendance à vouloir utiliser la syntaxe case, permettant de gérer plus de conditions de manière plus lisible...
Copie écran du résultat visible ici http://test03.christophe-charron.org..._select_if.PNG
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Select if(f4.choix_cleunik=-110112,round(sum((qte*pu*1)*(1-(f1.remise_taux/100))),0),round(sum((qte*pu*-1)*(1-(f1.remise_taux/100))),0)) as z01,f2.act_cleunik as z02 from _faccli_lignes f1,_acteurs f2,_faccli_entetes f3,_actions f4 where f4.action_cleunik=f3.action_cleunik and f2.act_cleunik=f3.act_cleunik and f1.commercial_cleunik=f3.commercial_cleunik and f2.typeacteur=110003 and (dateheure_confirm between '19610123' and '20610123') group by z02 order by z01 desc limit 12
Copie écran du résultat visible ici http://test03.christophe-charron.org...elect_case.PNG
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Select round(sum((qte*pu*(case f4.choix_cleunik WHEN -110112 THEN 1 ELSE -1 END))*(1-(f1.remise_taux/100))),0) as z01,f2.act_cleunik as z02 from _faccli_lignes f1,_acteurs f2,_faccli_entetes f3,_actions f4 where f4.action_cleunik=f3.action_cleunik and f2.act_cleunik=f3.act_cleunik and f1.commercial_cleunik=f3.commercial_cleunik and f2.typeacteur=110003 and (dateheure_confirm between '19610123' and '20610123') group by z02 order by z01 desc limit 12
Partager