rudra117
Messages postés1099Date d'inscriptionmardi 7 juillet 2009StatutMembreDernière intervention15 janvier 2016
-
Modifié par rudra117 le 5/11/2015 à 07:59
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023
-
30 oct. 2021 à 09:57
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
rudra117
Messages postés1099Date d'inscriptionmardi 7 juillet 2009StatutMembreDernière intervention15 janvier 20161 5 nov. 2015 à 19:50
non c'est bon j'ai trouvé une parade. ;)
merci quand meme :)
jordane45
Messages postés37525Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 4 juin 2023341 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.
rudra117
Messages postés1099Date d'inscriptionmardi 7 juillet 2009StatutMembreDernière intervention15 janvier 20161 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
Messages postés37525Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 4 juin 2023341 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)
Alors où la somme sera affiché dans le programme ?
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 30 oct. 2021 à 09:57
BONJOUR JOSEPH Si si on apprécie grandement que celui qui vient ici soit un peu poli…
La question initiale concerne une requête sql, et non un programme en soit.
Le sql permet de « dialoguer » avec une base de données depuis un programme dans pleins de langages différents.
La façon dont le résultat d’une requête sql est affichée dans un programme dépend du langage utilisé, du choix du type d’interface, de la façon dont ça a été codé etc…..
Bref, c’est complètement hors contexte de cette question.
Ce que tu peux faire, c’est ouvrir un sujet à toi, dans le forum qui correspond à ton langage, sans oublier de dire bonjour et en postant toutes les informations nécessaires pour quelqu’un à l’autre bout du monde puisse essayer de t’aider. Pour poster du code utilise la coloration syntaxique voir ici https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
6 nov. 2015 à 00:44
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.
@++