Faire une somme dans un select [Résolu]

Signaler
Messages postés
1099
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
15 janvier 2016
-
Messages postés
32162
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 avril 2021
-
Bonjour,
je cherche a pouvoir faire une somme dasn un tableau que je cree dans la meme Query. Il faut reussir a faire la somme de toutes les valeurs d'une colomne x quand les lignes ont la meme valeur sur une autre colomne y.
Apres ma requete j'ai ca comme reponse
mois       vente
01             20
02             10
02             40
03              5
03             30
03              3


il faut que j'aditionne toutes les ventes du meme mois:
voila ce qu'il me faut
mois       vente
01             20
02             50
03             38

voila le code que j'ai :

DECLARE @Name varchar = 'Neo';
DECLARE @Year int = YEAR(GETDATE());
 SELECT MONTH(ApprovedStartDate) AS Months, SUM(ApprovedDays) AS Leaves
 FROM vw_LeaveAllDetails 
 WHERE YEAR(ApprovedStartDate) = @Year AND FullName LIKE '%'+@Name+'%'
 GROUP BY ApprovedStartDate


merci de me dire comment proceder pour avoir la somme selon les mois.
merci

2 réponses

Messages postés
1099
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
15 janvier 2016
1
non c'est bon j'ai trouvé une parade. ;)
merci quand meme :)
Messages postés
32162
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 avril 2021
345
Une "parade" ??

Quoi qu'il en soit, histoire que sa puisse servir à d'autres visiteurs du forum.... merci
1 - D'indiquer la solution à ton souci
2 - De penser à mettre la question en résolue.

Merci.

@++
Messages postés
32162
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 avril 2021
345
Bonjour
Utilises la
fonction SUM (colonne)

Et un group by sur ta colonne Mois

Cordialement,
Jordane
Messages postés
1099
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
15 janvier 2016
1
C'est ce que j'ai voulu faire mais il faut que j'execute le SUM sur le resultat de ma 1ere requete.
il faut que j'arrive a la stocker dans une table temporaire(ttemp) et faire la somme sur ttemp. Et je ne vois pas comment stocker la reponse de ma 1ere requite dans une table temporaire.
s'il y a moyen de faire ca avec des sous requetes ou autre techniques je suis partant.
Messages postés
32162
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 avril 2021
345
Au pire tu pourrais faire ça ...

SELECT T.Months
             ,SUM(T.Leaves) as SOMME
FROM
(
  SELECT MONTH(ApprovedStartDate) AS Months
              , SUM(ApprovedDays) AS Leaves
   FROM vw_LeaveAllDetails 
   WHERE YEAR(ApprovedStartDate) = @Year 
        AND FullName LIKE '%'+@Name+'%'
 GROUP BY ApprovedStartDate
)T
GROUP BY T.Months


Mais à mon avis ... sans Sous-requête ... tu pourrais y arriver directement...
Un truc du genre :
 SELECT MONTH(ApprovedStartDate) AS Months
              , SUM(ApprovedDays) AS Leaves
   FROM vw_LeaveAllDetails 
   WHERE YEAR(ApprovedStartDate) = @Year 
        AND FullName LIKE '%'+@Name+'%'
 GROUP BY MONTH(ApprovedStartDate)