[SQL] un chti problème de requête :(

un chti problème de requête :( [SQL] - Programmation

Marsh Posté le 13-09-2001 à 15:10:59    

Je vais tenter d'expliquer clairement la chose. J'ai 2 tables, l'une avec des utilisateurs, l'autre avec les profils des utilisateurs. la jointure se fait entre Idp_pro (Identifiant des profils) et Pro_uti (le profil des utilisateurs). Je compte compter :) le nombre d'administrateurs, de modérateurs, d'utilisateurs inscrits et non inscrits, le tout en une seul requête SQL. Je ne veux pas de truc du style Statistiques.recordcount, etc !!!.
 
Voila en fait la rêquete que je souhaitais avoir, mais qui ne fonctionne pas non plus :(
       SQl="Select Den_uti,"&_
       " count(Adm_pro) As Nbr_Adm_pro,"&_
       " count(Mod_pro) As Nbr_Mod_pro,"&_
       " count(Ins_pro) As Nbr_Ins_pro,"&_
       " count(Act_pro) As Nbr_Act_pro"&_
       " From Utilisateurs, Profiles Where "&_
       " Pro_uti=Idp_pro And Adm_pro=true Group By"&_
       " Adm_pro,"&_
       " Mod_pro,"&_
       " Ins_pro,"&_
       " Act_pro,"&_
       " Den_uti Order By"&_
       " Adm_pro,"&_
       " Mod_pro,"&_
       " Ins_pro,"&_
       " Act_pro"
       
       Statistiques.Open SQL, conn, 3, 3

Reply

Marsh Posté le 13-09-2001 à 15:10:59   

Reply

Marsh Posté le 13-09-2001 à 15:15:43    

Je pense que tu ne devrais pas mettre dans ta clause Group by toutes tes zones en count(...)

Reply

Marsh Posté le 13-09-2001 à 15:54:18    

attends, le grou by te permet de grouper le result set sur un ensemble de colonnes qui ont la même valeur en même temps.
si tu as un identificateur de profil & que chaque utilisateur a 1 profil, il te suffit de grouper sur l'id de profil :

Code :
  1. select
  2.   count(pro_uti),idp_pro
  3. from
  4.   utilisateurs
  5. group by
  6.   idp_pro


---------------
di. / www.diredaredare.org - Ailes de la ville
Reply

Marsh Posté le 13-09-2001 à 17:09:29    

instantdharma a écrit a écrit :

attends, le grou by te permet de grouper le result set sur un ensemble de colonnes qui ont la même valeur en même temps.
si tu as un identificateur de profil & que chaque utilisateur a 1 profil, il te suffit de grouper sur l'id de profil :

Code :
  1. select
  2.   count(pro_uti),idp_pro
  3. from
  4.   utilisateurs
  5. group by
  6.   idp_pro

 




 
Bah en fait le problème est beaucoup plus corser que cela. En fait il me faut connaître la somme de tous les administrateurs, modérateurs,.....; sachant que ce sont des champs oui/non (true ou false). j'ai essayé par n'importe quel méthode mais impossible
de trouver le bon résultat

Reply

Marsh Posté le 13-09-2001 à 17:13:18    

Tu dois pouvoir y arriver
Tu peux utiliser aussi le count(distinct(...))
where ... = 'true'

Reply

Marsh Posté le 13-09-2001 à 17:36:12    

effectivement première chose.
virer du group by les colonnes qui sont dans un count


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 13-09-2001 à 22:49:44    

essaye de separe tes requetes et de les joindre apres
du style
select  count(id), null, null, null where... join
select null, count(pid), null, null where... join
select null, null, count(vid), null where ... join
select null, null, null, count(nid) where...  
 
Je suis pas sur que ce soit join à mettre entre les apels, je me
souvient plus trop, dans l'aide, c'est la fonction pour joindre en tout cas. Essaye, c pas sur que se soir bon mais enfin

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed