Faire une somme dans un select [Résolu]

rudra117 1099 Messages postés mardi 7 juillet 2009Date d'inscription 15 janvier 2016 Dernière intervention - 5 nov. 2015 à 07:37 - Dernière réponse : jordane45 19991 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 février 2018 Dernière intervention
- 6 nov. 2015 à 00:44
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
Afficher la suite 

5 réponses

Répondre au sujet
jordane45 19991 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 février 2018 Dernière intervention - Modifié par jordane45 le 5/11/2015 à 10:28
0
Utile
2
Bonjour
Utilises la
fonction SUM (colonne)

Et un group by sur ta colonne Mois

Cordialement,
Jordane
rudra117 1099 Messages postés mardi 7 juillet 2009Date d'inscription 15 janvier 2016 Dernière intervention - 5 nov. 2015 à 10:35
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.
jordane45 19991 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 février 2018 Dernière intervention - 5 nov. 2015 à 19:29
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) 
Commenter la réponse de jordane45
rudra117 1099 Messages postés mardi 7 juillet 2009Date d'inscription 15 janvier 2016 Dernière intervention - 5 nov. 2015 à 19:50
0
Utile
1
non c'est bon j'ai trouvé une parade. ;)
merci quand meme :)
jordane45 19991 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 février 2018 Dernière intervention - 6 nov. 2015 à 00:44
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.

@++
Commenter la réponse de rudra117

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.