8
votes

Faire des sommes si certaines conditions sont vraies

J'essaie de créer une requête qui fait une somme si un certain paramètre est ensemble. Par exemple:

SELECT SUM(IF(<condition> <condition>,field,field)) AS total_value


1 commentaires

Bienvenue sur Stackoverflow. Vous pouvez modifier votre question (et vos réponses) en cliquant sur le lien Modifier - il se trouve à gauche, en face de votre nom d'utilisateur et Gravatar. Il existe également une syntaxe appelée Markdown, qui vous permettra de modifier le formatage pour faciliter la lecture des choses.


4 Réponses :


9
votes

Regardez l'instruction CAS:

Select Sum( Case 
            When column1 = 'Foo' Then column2 
            When column1 = 'Bar' Then column3
            When column1 = 'Gamma' Then column2 + column3
            Else column3 End )
From ...


0 commentaires

2
votes
select sum(case when a = b then field1 else field2 end)

2 commentaires

@Gugu: Pouvez-vous mettre à jour votre question pour inclure des données d'exemple et une sortie attendue, c'est donc plus clair pour nous ce que vous êtes après?


@Gugu: Postez la déclaration exacte que vous utilisez, ainsi que votre schéma et expliquez Comment Cela ne fonctionne pas. Aussi, voir ma mise à jour.



0
votes
SELECT SUM(IF(<condition1>, 
              IF(<condition2>,
                 <field1>,
                 <field2>),
              <field2>)) AS total_value

1 commentaires

Vous devez mettre à jour votre question initiale pour clarifier exactement ce que vous cherchez à obtenir.



1
votes
SELECT SUM(IF(field = value1 OR field = value2 OR field = value3,1,NULL)) AS total_value

0 commentaires