Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
999 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  comment faire 1 somme totale de sommes en 1 requete SQL?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment faire 1 somme totale de sommes en 1 requete SQL?

n°1438557
albertos
kikoo
Posté le 07-09-2006 à 16:48:23  profilanswer
 

voici les tables
STAGIAIRES : IDSTAG
CONTRATS : IDCONTRAT,IDSTAG
 
 
je voudrais faire , en resumé pour faire simple, pour chaque stagiaire je compte le nombre de contrats qu'il a, et avoir le total de ces sommes ensuite.
donc imaginons que tous mes stagiaires ont 2 contrats et qu'il y a 5 stagaires, je devrais avoir en resultat 10.
mais je ne vois pas comment faire ça.. !donc je viens voir par ici pour avoir un peu d'aide !

mood
Publicité
Posté le 07-09-2006 à 16:48:23  profilanswer
 

n°1438571
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-09-2006 à 16:54:19  profilanswer
 

Rollup powwwa :D

Code :
  1. select s.idstag, count(c.idstag) from stagiaires s inner join contrats c on c.idstag = s.idstag group by rollup(s.idstag)

n°1438603
albertos
kikoo
Posté le 07-09-2006 à 17:09:44  profilanswer
 

merci !
mais j'utilise une base firebird et a priori ça ne marche pas, il comprend pas le rollup  :??:

n°1438636
betsamee
Asterisk Zeperyl
Posté le 07-09-2006 à 17:27:15  profilanswer
 

je trouve ca original:

Code :
  1. select C1.idstag,count(*)
  2. from CONTRATS C1
  3. group by C1.idstag
  4. UNION
  5. select 'Total',count(*)
  6. from CONTRATS C2

Message cité 1 fois
Message édité par betsamee le 07-09-2006 à 17:27:42
n°1438644
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-09-2006 à 17:40:44  profilanswer
 

original mais efficace :jap:


Message édité par anapajari le 07-09-2006 à 17:41:18
n°1438874
albertos
kikoo
Posté le 08-09-2006 à 10:12:39  profilanswer
 

je ne comprends pas trop le 'total', il fait reference a quoi dans ta requete betsamee ?

n°1438880
betsamee
Asterisk Zeperyl
Posté le 08-09-2006 à 10:16:51  profilanswer
 

il ecrit simplement total dans le champ a cote du total et ceci afin que l union fonctionne

n°1439086
albertos
kikoo
Posté le 08-09-2006 à 14:13:15  profilanswer
 

il me renvoi une erreur 'datatype unknow'

n°1439091
albertos
kikoo
Posté le 08-09-2006 à 14:21:47  profilanswer
 

en je voudrai qu'il fasse une sorte de distinct, qu'1 stagiaire ai 1 ou plusieurs contrat je voudrai qu'il ne soit compté qu'une seule fois.

n°1439103
anapajari
s/travail/glanding on hfr/gs;
Posté le 08-09-2006 à 14:30:16  profilanswer
 

bin c'est ce que doit faire ton group by :??:
Quel sgbd tu utilises?
Quelle est l'erreur complète renvoyé par la requête de betsamee? Car celle-ci doit être correcte ( seul pb, le premier champ remonté n'est pas du même type dans les deux requêtes de l'union, tu seras ptêt obligé de faire un cast en string de ton idstag)

mood
Publicité
Posté le 08-09-2006 à 14:30:16  profilanswer
 

n°1439121
orafrance
Posté le 08-09-2006 à 14:48:37  profilanswer
 

betsamee a écrit :

je trouve ca original:

Code :
  1. select C1.idstag,count(*)
  2. from CONTRATS C1
  3. group by C1.idstag
  4. UNION
  5. select 'Total',count(*)
  6. from CONTRATS C2



 
UNION ALL pour éviter un tri inutile :)
 
Sinon, sous Oracle tu peux utiliser SUM (*) OVER ()

n°1439127
anapajari
s/travail/glanding on hfr/gs;
Posté le 08-09-2006 à 14:54:07  profilanswer
 

si ça avait été oracle, rollup aurait marché , non :??:
remarque ça doit dépendre de la version ...

n°1439141
albertos
kikoo
Posté le 08-09-2006 à 15:19:31  profilanswer
 

anapajari a écrit :

bin c'est ce que doit faire ton group by :??:
Quel sgbd tu utilises?
Quelle est l'erreur complète renvoyé par la requête de betsamee? Car celle-ci doit être correcte ( seul pb, le premier champ remonté n'est pas du même type dans les deux requêtes de l'union, tu seras ptêt obligé de faire un cast en string de ton idstag)


ah voila je pense que le probleme est la.je vais essayer de voir comment ça marche le cast car je connais pas..merci!
c'est une base Firebird 1.5
d'apres ce que j'ai lu le rollup devrait marcher sur la 2.0 mais elle est encore en beta il me semble et n'est pas installée sur le serveur de prod pour le moment


Message édité par albertos le 08-09-2006 à 15:21:04

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  comment faire 1 somme totale de sommes en 1 requete SQL?

 

Sujets relatifs
[Business Objec (webi)], probleme de requete LIKE '%blabla%'.Regrouper des requêtes SQL
Requete dans requete...Serveur SQL, comportement étrange.
[VB.NET] Sauvegarde/Restauration base SQL -> C'est possible?[Transact SQL] Injection de SQL et procdure stockée
[ORA] - Optimisation d'une requete[MySQL] Probléme sur requete pas simple !
Oracle : problème requête ! MERGE INTO [RESOL] 2 bugs Oracle de fouUn ptit coup de pouce pour une requête SQL
Plus de sujets relatifs à : comment faire 1 somme totale de sommes en 1 requete SQL?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR