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

Langage SQL Discussion :

Comment n'afficher qu'une seule ligne par sous-groupe


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 37
    Points : 24
    Points
    24
    Par défaut Comment n'afficher qu'une seule ligne par sous-groupe
    Salut, j'ai fait une requête destinée à alimenter une zone de liste.

    La voici

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Exemplaires.id_exemplaire, Ecrits.titre, Auteur.Nom, Editeur.Nom
    FROM Exemplaires, Ecrits, A_ecrit, Auteur, Editeur
    WHERE Exemplaires.id_editeur=Editeur.id_editeur 
    And Ecrits.id_ecrit=Exemplaires.id_ecrit 
    And A_ecrit.id_ecrit=Ecrits.id_ecrit 
    And Auteur.id_auteur=A_ecrit.id_auteur ;

    Elle fonctionne comme je l'attend et me donne ce résultat

    id_exemplaire titre Auteur.Nom Editeur.Nom
    1 Dddd Zrr Zzzzzzheqf
    1 Dddd Claude Lelouch Zzzzzzheqf
    2 Dangereux Jo Babar

    (Dsl pour les noms, je teste ^^)
    Vous constatez que plusieurs auteurs peuvent avoir collaboré sur un même écrit.
    Ma question est la suivante ; comment doit modifier ma requête pour qu'elle ne donne qu'une auteur pour chaque écrit (le premier de la liste).

    En bref, je recherche ce résultat :

    id_exemplaire titre Auteur.Nom Editeur.Nom
    1 Dddd Zrr Zzzzzzheqf
    2 Dangereux Jo Babar

    En fait il me faudrait une sorte de group by pour des valeurs que l'on ne peut pas sommer.

    Merci pour votre aide !!!

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Comme ça par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    SELECT  Exemplaires.id_exemplaire
        ,   Ecrits.titre
        ,   MIN(Auteur.Nom)
        ,   Editeur.Nom
    FROM    Exemplaires
        INNER JOIN
            Ecrits
            ON  Ecrits.id_ecrit=Exemplaires.id_ecrit 
        INNER JOIN
            A_ecrit
            ON  A_ecrit.id_ecrit=Ecrits.id_ecrit 
        INNER JOIN
            Auteur
            ON Auteur.id_auteur=A_ecrit.id_auteur 
        INNER JOIN
            Editeur
            ON  Exemplaires.id_editeur=Editeur.id_editeur
    GROUP BY Exemplaires.id_exemplaire
        ,   Ecrits.titre
        ,   Editeur.Nom
    NB : Les jointures normalisées sont plus claires à lire et plus pratiques à utiliser
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Merci j'essaie et entre temps je me documente sur les autres méthodes de jointures (on nous a appris qu'à la faire dans la clause where )

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Un grand merci, ça fonctionne !
    J'aurai jamais trouvé seul la fonction MIN pour des string quelles folie

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

Discussions similaires

  1. RecordSet qui n'affiche qu'une seule ligne
    Par niamo dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/06/2010, 11h17
  2. [AC-2007] Comment n'afficher qu'un seule ligne par sous-groupe
    Par mondaying dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 20/01/2010, 17h39
  3. [Debutant] echo n'affiche qu'une seule ligne
    Par ben_harper dans le forum Linux
    Réponses: 6
    Dernier message: 04/10/2007, 17h40
  4. Le code source s'affiche sur une seule ligne!
    Par Emcy dans le forum Général Conception Web
    Réponses: 10
    Dernier message: 06/12/2006, 09h12
  5. Réponses: 5
    Dernier message: 27/06/2006, 20h27

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