Ouverture de session

Commentaires récents

Syndication
Flux XML

sum

sum
Posté par camlez le Samedi, 20 Février, 2010 - 4:52pm. Débuter avec Rails

Bonjour
Je fais un calcul sur une colonne avec
@toto = Toto.calculate(:sum, :prix1, :conditions => ["etc"]) ça fonctionne bien

Je voudrais faire un calcul sur 2 colonnes sans passer par le sql, par ex

@toto =Toto.calculate(:sum, :prix1 + :prix2, :conditions => ["etc"]) mais ce n'est pas la bonne syntaxe, suis je obligé de passer par le sql

select SUM(prix1) + SUM(prix2) WHERE etc GROUP BY etc

Merci



[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | sujet précédent | sujet suivant | envoyer par email ]

Options d'affichage des commentaires
Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder" pour activer vos changements.

Sujet: 
sum1 + sum2 ?
Auteur: 
jasperiel
Date: 
Sam, 20/02/2010 - 17:58

Salut,

pourquoi ne pas faire Toto.calculate(:sum, :prix1) + Toto.calculate(:sum, :prix2) ?
Je t'avoue que je n'ai aucune idée des perfs, mais tu y gagnes tellement en temps de dev, en relecture et en maintenance...

Et puis, pourquoi s'embêter, à moins que tes perfs ne soient absolument pas satisfaisantes ou que ça ne devienne un goulot d'étranglement ?
C'est à toi de benchmarker chez toi sur un ensemble représentatif de tes données. Même si tu fais les sommes souvent, avec un minimum de cache, c'est pas forcément beaucoup plus coûteux.

Sinon, tu as des tonnes d'astuces à disposition, comme ajouter un champ :prix_sum par record, ou avoir un setting global contenant la somme, que tu mettrais à jour à chaque update.

Bon courage,


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Nouveaux liens

Qui est en ligne
Il y a actuellement 1 utilisateur et 15 invités en ligne.

railsfrance.org - communauté francophone des utilisateurs de Ruby on Rails
[ Propulsé par Drupal ]