Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/05/2011, 14h39   #1
Invité régulier
 
Inscription : novembre 2009
Messages : 77
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 77
Points : 9
Points : 9
Par défaut Requete imbriquée dans sql

Bonjour tout le monde, je rencontre un problème avec une requête imbriquée, voilà j'ai deux tables utilisateur et activité parmi les champs de la table utilisateur il y a le champ id_activite et dans la table activite il y a deux champs id_activite et nom_activite.Je veux que ma requête me retourne le nombre d'utilisateurs dans chaque activité donc je veux avoir l'affichage de nom_activite et total (qui représente le nombre d'utilisateur correspondant à l'activité de cette ligne).
J'ai fait cette requête
Code :
 SELECT nom_activite ,count(login_user) FROM user u,activite a WHERE u.id_activite=a.id_activite GROUP BY u.id_activite
mais ça me retourne une erreur .J'espère être clair et merci pour toute réponse ou correction de ma requête.impatiemment
belfafi est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 18/05/2011, 15h02   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour,

Les colonnes dans le select qui ne sont pas incluses dans des focntions d'agregat (MAX, MIN ,SUM, COUNT,...) doivent etre spécifiées dans la clause GROUP BY.

Dans votre requete, la colonne nom_activité doit donc etre dans votre group by, ce qui donne, avec une jointure correcte :

Code SQL :
1
2
3
4
5
6
7
8
 
SELECT 
    nom_activite ,
    COUNT(login_user)  AS NbUsers
FROM user u
INNER JOIN activite a 
    ON u.id_activite=a.id_activite 
GROUP BY nom_activite
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h41.


 
 
 
 
Partenaires

Hébergement Web