SOMME DANS REQUETE SQL
soleil_levant
Messages postés
393
Date d'inscription
Statut
Membre
Dernière intervention
-
moderno31 Messages postés 872 Date d'inscription Statut Membre Dernière intervention -
moderno31 Messages postés 872 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Me voila de retour dans la vie active, ravi d'étre parmis vous de nouveau, bonne rentrée à tou(te)s
Je reviens vers vous avec un petit souci, je souhaite faire une somme sur une colonne précise Montant, sauf que cette somme je dois la faire uniquement quand le nom du client change. Le problème c'est que je dois faire un group by pour regrouper les clients, alors que c'est pas bon car j'ai un ID.
SELECT Code, date_envoi, Nom, prenom, SUM(Montant)
from T_transfert
Order By Nom, prenom
Group By Nom, prenom..
Ce que je souhaite faire apparaitre c'est seulement les clients qui ont fait des montant supérieure à 500 €
voici un apercu de la table:
code Date_envoi Nom prenom Montant ........
1 2008 MARTIN GEORGES 45
3 2008 MARTIN GEORGES 100
43 2008 DUPONT MARIE 20
21 2008 DUPONT MARIE 10
33 2008 DUPONT MARIE 50
434 2008 DUPONT ALAIN 10000
3 2008 DUPONT Alain 2000
Merci d'avances
Me voila de retour dans la vie active, ravi d'étre parmis vous de nouveau, bonne rentrée à tou(te)s
Je reviens vers vous avec un petit souci, je souhaite faire une somme sur une colonne précise Montant, sauf que cette somme je dois la faire uniquement quand le nom du client change. Le problème c'est que je dois faire un group by pour regrouper les clients, alors que c'est pas bon car j'ai un ID.
SELECT Code, date_envoi, Nom, prenom, SUM(Montant)
from T_transfert
Order By Nom, prenom
Group By Nom, prenom..
Ce que je souhaite faire apparaitre c'est seulement les clients qui ont fait des montant supérieure à 500 €
voici un apercu de la table:
code Date_envoi Nom prenom Montant ........
1 2008 MARTIN GEORGES 45
3 2008 MARTIN GEORGES 100
43 2008 DUPONT MARIE 20
21 2008 DUPONT MARIE 10
33 2008 DUPONT MARIE 50
434 2008 DUPONT ALAIN 10000
3 2008 DUPONT Alain 2000
Merci d'avances
A voir également:
- SOMME DANS REQUETE SQL
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Somme en anglais excel - Guide
- Logiciel sql - Télécharger - Bases de données
- Somme excel ne fonctionne pas ✓ - Forum Excel
11 réponses
Bonjour,
Je pense qu'il faut que tu regardes du coté de la fonction HAVING qui permet de filtrer les agrégats il me semble.
Je pense qu'il faut que tu regardes du coté de la fonction HAVING qui permet de filtrer les agrégats il me semble.
Bonjour,
Le problème comme je l'ai dis dans le début du message du group by est que je dois afficher ce que je compte regrouper. Si je veux faire des conditions sur les noms des clients et leurs montant, je dois sélectionner uniquement les colonnes noms et montant et mettre un group by et un having by selon la somme du montant
Je veux comme meme faire apparaitre les ID de mes lignes, les dates et ..... ce sont des infos obligatoires :(
Merci d'avance
Le problème comme je l'ai dis dans le début du message du group by est que je dois afficher ce que je compte regrouper. Si je veux faire des conditions sur les noms des clients et leurs montant, je dois sélectionner uniquement les colonnes noms et montant et mettre un group by et un having by selon la somme du montant
Je veux comme meme faire apparaitre les ID de mes lignes, les dates et ..... ce sont des infos obligatoires :(
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
voila ca devrais te plaire ca
SELECT perso2.nom, perso2.prenom, perso2.AGE, Sum(perso2.prix) AS SommeDeprix
FROM perso2
GROUP BY perso2.nom, perso2.prenom, perso2.AGE
HAVING (((Sum(perso2.prix))>10000));
SELECT perso2.nom, perso2.prenom, perso2.AGE, Sum(perso2.prix) AS SommeDeprix
FROM perso2
GROUP BY perso2.nom, perso2.prenom, perso2.AGE
HAVING (((Sum(perso2.prix))>10000));
500 dans une tables, un S.I est une valeur (un indicateur) qui est la très certaines sommes de plusieurs lignes.
Faire un where champ > 500 ça ne vaut que ligne par ligne pas de groupe meme avec group by.
Having champ > 500, signifie : sur la base du regroupement du résultat, ne remonte que ceux qui sont > 500.
Vous avez compris ?
WHERE filtre des lignes
HAVING filtre des agrégats
Du moment qu'on somme ou qu'on compte attention à l'usage de WHERE sur les valeurs !
Faire un where champ > 500 ça ne vaut que ligne par ligne pas de groupe meme avec group by.
Having champ > 500, signifie : sur la base du regroupement du résultat, ne remonte que ceux qui sont > 500.
Vous avez compris ?
WHERE filtre des lignes
HAVING filtre des agrégats
Du moment qu'on somme ou qu'on compte attention à l'usage de WHERE sur les valeurs !
Bonjour,
désolé pr ce retard de réponse, mais la réponse me semble pas très convaincante,
Je connais l'usage du Having, mais comme je l'ai déja expliqué, il faut que je fasse une somme d'abord sur le client quand il change, ensuite un having dans la meme requete. Me semble l'utilisation des requetes imbriquées s'imposent, si quelqu'un a une idée s'il vous plait?
Ex;
Select * from Table
Left Outer Join Table (select T1.Nom, T1.prenom, Sum(T1.Montant) As cumul
from Table T1
where T1.annee = Year(Date)
order by T1.Nom, T1.prenom
group by T1.Nom, T1.prenom, cumul) T2
ON T1.Nom = T2.Nom
Mais cela ne marche vraiment pas, c'est une idée est ce quelqu'un pourrait m'éclairer s'il vous plait
désolé pr ce retard de réponse, mais la réponse me semble pas très convaincante,
Je connais l'usage du Having, mais comme je l'ai déja expliqué, il faut que je fasse une somme d'abord sur le client quand il change, ensuite un having dans la meme requete. Me semble l'utilisation des requetes imbriquées s'imposent, si quelqu'un a une idée s'il vous plait?
Ex;
Select * from Table
Left Outer Join Table (select T1.Nom, T1.prenom, Sum(T1.Montant) As cumul
from Table T1
where T1.annee = Year(Date)
order by T1.Nom, T1.prenom
group by T1.Nom, T1.prenom, cumul) T2
ON T1.Nom = T2.Nom
Mais cela ne marche vraiment pas, c'est une idée est ce quelqu'un pourrait m'éclairer s'il vous plait
pk dans 2 requetes?
Tu places ton having dans la req principale.
Et après tout dépend de comment est organisé ton SI. C'est à toi de t'adapter. Hioer j'ai expliqué ce qu'il faut savoir en général sur having
Maintenant dans ton cas il faut peut etre s'y prendre autrement. Je peux me tromper...
Tu places ton having dans la req principale.
Et après tout dépend de comment est organisé ton SI. C'est à toi de t'adapter. Hioer j'ai expliqué ce qu'il faut savoir en général sur having
Maintenant dans ton cas il faut peut etre s'y prendre autrement. Je peux me tromper...
Est ce que tu connais la fonctionnalité sous.total de Excel?
En faite c'est simple, j'ai une liste de clients qui effectue des opérations monétaires avec chacun un Id par ligne, je veux séléctionner ces enregistrements pour ceux qui ont fait plus de 2000€, et sélectionner bien entendu tous les renseignement, le having nécessite un group by pour faire un cumul sur la somme, c'est pour ça le recours à deux requetes avec équijointures .
kk1 a une idée ?? :(
En faite c'est simple, j'ai une liste de clients qui effectue des opérations monétaires avec chacun un Id par ligne, je veux séléctionner ces enregistrements pour ceux qui ont fait plus de 2000€, et sélectionner bien entendu tous les renseignement, le having nécessite un group by pour faire un cumul sur la somme, c'est pour ça le recours à deux requetes avec équijointures .
kk1 a une idée ?? :(