IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

MSDE - SQL - Group by or non group by !


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Points : 23
    Points
    23
    Par défaut MSDE - SQL - Group by or non group by !
    Bonjour,

    J'ai besoin de vos lumieres et ou de conseils pour l'utilisation d'une requete.
    Je cherche a faire quelques statistiques sur une base, la requete avec GROUP BY me ramene des resultats corrects mais exclu les resultats equivalents à 0.

    Je m'explique. J'ai un table ENFANT qui contient un ID et le nom de l'ENFANT et une table JOUET qui contient chaque jouet de chaque ENFANT (IDJOUET +IDENFANT)

    Je souhaite obtenir tous les jouets de chaque enfant, et meme ceux qui n'ont pas de jouets ! (c'est la ou cela ne fonctionne pas).

    Ma requete
    SELECT count(*),NomEnfant FROM JOUET INNER JOIN ENFANT ON JOUET.IDENFANT=ENFANT.IDENFANT Group by ENFANT.NomENfant

    J'obtiens par ex
    4 ARTHUR
    2 THOMAS
    1 CHARLES

    mais si dans ma base ENFANT j'ai un JULES et qu'il n'a pas de jouet il ne sort pas dans la requete alors que j'aimerai bien une derniere ligne
    0 JULES !

    J'ai bien tenté de faire un
    SELECT e.somme from jouer j INNER JOIN (select count(*) as somme from jouet Group by enfant) e on e.idenfant=j.idenfant mais le resultat est identique .....


    Si quelqu'un a deja eu ce souci (j'ai parcouru et fait une recherche ici mais pas trouvé grand chose).
    Un GRAND merci.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 218
    Points : 28 193
    Points
    28 193
    Par défaut
    remplace ta jointure interne (inner join) par une jointure externe droite (right outer join)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mars 2011
    Messages : 31
    Points : 32
    Points
    32
    Par défaut
    essaie cette requéte :

    select nomenfant,
    (select count(*)
    from jouet j
    where e.idenfant = j.idnenfant) as nbr_jouets

    from enfant e

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Points : 23
    Points
    23
    Par défaut
    Désolé sevyc64, la jointure externe droite ramene bien des valeurs a 0 mais multiplie le nombre de ligne (ce qui donne un resultat certes bon mais avec enormement de doublon). Peut etre en rajoutant un Distinct.

    Bref, la requete de Mara1 FONCTIONNE .
    Je n'avais pas été jusque la. bravo


    Merci à vous deux pour vos propositions et votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SQL premier enregistrement dans un group by
    Par scoli dans le forum MS SQL Server
    Réponses: 15
    Dernier message: 06/04/2013, 01h33
  2. Réponses: 6
    Dernier message: 01/04/2008, 18h47
  3. Requête SQL avec UNION, sum et GROUP BY
    Par Guitariff dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/12/2006, 13h48
  4. Requête SQL - Pb avec la clause GROUP BY
    Par jeromesco dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/07/2006, 09h04
  5. [2.0][C#]UserControl, Groupe de proprieté non modifiable !!
    Par chnew dans le forum Windows Forms
    Réponses: 4
    Dernier message: 07/01/2006, 00h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo