2011-08-01 4 views
2

Je dois additionner un groupe pour ma requête. Quelque chose comme:Comment utiliser SUM dans mySQL?

SELECT customer_id, SUM(weekly) FROM earnings GROUP BY customer_id 

Les travaux ci-dessus, mais je besoin de quelque chose un peu plus complexe, et ma question est comme ceci:

SELECT 
    (SELECT SUM(weekly) FROM earnings) + 
    (SELECT SUM(day_earnings) FROM earnings)/.75 

Le ci-dessus fait la somme de tous les revenus, hebdomadaire et quotidienne , mais j'ai besoin de les regrouper par customer_id like dans le premier exemple. Comment puis-je y parvenir?

Répondre

3

Selon l'ordre des opérations dans votre tentative ci-dessus, c'est le SUM(day_earnings) seulement qui est divisé par .75. Si ce sont les totaux hebdomadaires & ensemble, placez des parenthèses autour d'eux comme (SUM(weekly) + SUM(day_earnings))/0.75 AS earnings.

SELECT 
    customer_id, 
    customer_name, 
    SUM(weekly) + SUM(day_earnings)/0.75 AS earnings 
FROM earnings JOIN customers ON earnings.customer_id = customers.customer_id 
GROUP BY customer_id, customer_name 
+0

merci! comment puis-je également joindre ce customer_id avec les clients de la table pour obtenir les noms? Je vous remercie! – luqita

+1

Voir la modification ci-dessus. 'customer_name' ajouté à la liste de sélection et de groupe par la liste, et rejoint dans le –

+0

excellent! Merci! Notez cependant que customer_id a besoin de la table avant car elle existe dans les deux. Merci de votre aide! – luqita

0

Est-ce que cela fonctionne?

SELECT customer_id, SUM(weekly + (day_earnings/.75)) 
FROM earnings 
GROUP BY customer_id 
0
SELECT 
    customer_id, 
    SUM(weekly) weekly, 
    SUM(day_earnings) daily, 
    ((SUM(weekly) + SUM(day_earnings))/.75) calc 
FROM 
    earnings 
GROUP BY 
    customer_id 
0

Ne peut pas vous faire juste:

SELECT customer_id, (SUM(weekly) + SUM(day_earnings)/.75) AS earnSum FROM earnings GROUP BY customer_id