SOMME DANS REQUETE SQL
Fermé
soleil_levant
Messages postés
393
Date d'inscription
lundi 15 septembre 2008
Statut
Membre
Dernière intervention
14 avril 2011
-
1 sept. 2009 à 17:05
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 - 2 sept. 2009 à 16:53
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 - 2 sept. 2009 à 16:53
A voir également:
- SOMME DANS REQUETE SQL
- Somme si couleur - Guide
- Somme excel - Guide
- Requête sql pix - Forum Python
- Blob sql ✓ - Forum Webmastering
- Récupération serveur sql - Télécharger - Gestion de données
11 réponses
Darkito
Messages postés
1191
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
545
1 sept. 2009 à 17:12
1 sept. 2009 à 17:12
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.
soleil_levant
Messages postés
393
Date d'inscription
lundi 15 septembre 2008
Statut
Membre
Dernière intervention
14 avril 2011
32
1 sept. 2009 à 17:25
1 sept. 2009 à 17:25
Bonjour,
Merci pour ta réponse,
Peux tu me donner un exemple s'il te plaît?
Merci d'avance
Merci pour ta réponse,
Peux tu me donner un exemple s'il te plaît?
Merci d'avance
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
1 sept. 2009 à 17:42
1 sept. 2009 à 17:42
bonjour
pourquoi ne mais tu pas un where montant > 500 dans ta requete?
pourquoi ne mais tu pas un where montant > 500 dans ta requete?
soleil_levant
Messages postés
393
Date d'inscription
lundi 15 septembre 2008
Statut
Membre
Dernière intervention
14 avril 2011
32
1 sept. 2009 à 17:43
1 sept. 2009 à 17:43
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
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
1 sept. 2009 à 18:08
1 sept. 2009 à 18:08
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));
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
1 sept. 2009 à 19:27
1 sept. 2009 à 19:27
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 !
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
1 sept. 2009 à 19:47
1 sept. 2009 à 19:47
merci pour l info
soleil_levant
Messages postés
393
Date d'inscription
lundi 15 septembre 2008
Statut
Membre
Dernière intervention
14 avril 2011
32
2 sept. 2009 à 09:43
2 sept. 2009 à 09:43
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
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
2 sept. 2009 à 09:48
2 sept. 2009 à 09:48
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...
soleil_levant
Messages postés
393
Date d'inscription
lundi 15 septembre 2008
Statut
Membre
Dernière intervention
14 avril 2011
32
2 sept. 2009 à 09:57
2 sept. 2009 à 09:57
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 ?? :(
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
2 sept. 2009 à 16:53
2 sept. 2009 à 16:53
sous total de excel ? la comme ça non mais je pense avoir une idée.
C'est via ms query que tu as recours aux requetes ?
Pas bien grave je n'ai plus de réponses à apporter pour l'instant
Evidemment ue having nécessite un group by puisque tu sommes (agréger)...
C'est via ms query que tu as recours aux requetes ?
Pas bien grave je n'ai plus de réponses à apporter pour l'instant
Evidemment ue having nécessite un group by puisque tu sommes (agréger)...