Maison >base de données >tutoriel mysql >Comment additionner les valeurs de rachat en SQL en fonction d'une condition mensuelle ?

Comment additionner les valeurs de rachat en SQL en fonction d'une condition mensuelle ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-23 15:41:15527parcourir

How to Sum Cash Values in SQL Based on a Monthly Condition?

Somme SQL avec condition (y compris les calculs mensuels)

Vous disposez d'une grande instruction SQL qui calcule le montant total en espèces pour chaque transaction unique ID en utilisant la ligne suivante :

select sum(cash) from Table a where a.branch = p.branch 
and a.transID = p.transID) TotalCash

Maintenant, vous devez modifier le relevé pour ne totaliser que les valeurs de trésorerie qui ont une ValueDate dans le mois dernier. Voici une solution :

select sum(CASE WHEN ValueDate > @startMonthDate THEN cash ELSE 0 END) 
from Table a where a.branch = p.branch 
and a.transID = p.transID) TotalMonthCash

Explication

L'instruction CASE utilise la syntaxe de l'expression CASE recherchée pour évaluer une expression booléenne (dans ce cas, WHEN ValueDate > @ startMonthDate) et renvoie un résultat correspondant (ici, cash). Si la condition n'est pas remplie, elle renvoie 0 à la place.

Conseil d'optimisation

Si les performances posent problème, envisagez d'utiliser JOIN et GROUP BY au lieu d'une sous-requête dépendante. pour une meilleure efficacité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn