J'utilise cette requête pour obtenir une valeur totale unique:
SELECT SUM(`contact_awards`.`amount`) AS amount
FROM (`contact_awards`)
WHERE
`contact_awards`.`gift_award_id` IN (1)
AND `created` BETWEEN "2013-05-05" AND "2014-04-01"
GROUP
BY `contact_awards`.`amount`
Cependant, lors de son exécution, il produit deux lignes contenant amount
champ:
500
1000
Pourquoi ça ne marche pas avec une seule ligne 1500
?
Merci de votre aide
Réponses:
3 pour la réponse № 1retirer le GROUP BY
clause,
SELECT SUM(contact_awards.amount) AS amount
FROM contact_awards
WHERE contact_awards.gift_award_id IN (1)
AND created BETWEEN "2013-05-05" AND "2014-04-01"
la raison pour laquelle vous obtenez deux enregistrements est parce qu'il y a deux valeurs différentes de contact_awards.amount
être groupé.
2 pour la réponse № 2
Lorsque vous utilisez group by
, les résultats vont être séparés par votre clause de regroupement. SI vous voulez une seule ligne résumée, retirez simplement le group by
à la fin de votre requête.