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

Développement SQL Server Discussion :

Listes les notes par élève. [2005]


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 70
    Points
    70
    Par défaut Listes les notes par élève.
    Bonjour,
    Je n'arrive pas à créer une requête qui m'affiche la liste des notes par élève.
    c'est-à-dire : chaque ligne représente un élève et ses notes.
    La tables des T_Eleves : numeroEleve, nom, ...
    La table des T_Notes : numEleve, Note, Annee, Mois, ...

    Le code SQL suivant aboutit à une erreur : La sous-requête a retourné plusieurs valeurs, cela n'est pas autorisé ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT dbo.T_Eleves.nom, dbo.T_Eleves.nEleve,
     (SELECT T_Notes.Note
    FROM T_Notes WHERE T_Notes.Annee=2020 AND T_Notes.Mois = 3) AS N 
    FROM T_Eleves
    Merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Pourquoi tu passes par une sous-requête, alors qu'une jointure fera parfaitement le travail ?

    Tatayo

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 70
    Points
    70
    Par défaut
    Bonjour,
    Avec une jointure entre les deux tables me donne aussi une note par ligne et par élève.
    Je dois afficher par ligne : l'élève et ses différentes notes.
    Cordialement

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    il faut utiliser la fonction STRING_AGG() pour mettre tous les éléments sur une ligne.
    Et effectivement utiliser une jointure plutôt qu'une requête imbriquée

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    J'ai l'impression que lq fonction STRING_AGG() n'existe pas dans SqlServer 2005 ?

    j'ai ce message d'erreur : string_agg n'est pas une option nom de fonction intégrée reconnue
    lors de l'exécution de la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT dbo.T_Eleves.nom, dbo.T_Eleves.nEleve, string_agg(CONVERT(nvarchar(MAX), dbo.T_Notes.Note)) AS Notes
    FROM  dbo.T_Notes INNER JOIN dbo.T_Eleves ON dbo.T_Notes.nEleve = dbo.T_Eleves.nEleve
    GROUP BY dbo.T_Eleves.nom, dbo.T_Eleves.nEleve

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par tonton67 Voir le message
    J'ai l'impression que lq fonction STRING_AGG() n'existe pas dans SqlServer 2005 ?
    Effectivement !
    Il serait peut-être temps d'upgrader aussi, c'est une version qui n'est plus supporté depuis 2012...

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 70
    Points
    70
    Par défaut
    bonsoir,
    oui effectivement,
    merci pour vos conseils

  8. #8
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    La fonction STRING_AGG() est proposée depuis SQL server 2017

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 70
    Points
    70
    Par défaut
    Bonjour,
    J'ai installé sql server 2019 developper, votre conseil fonction très bien.
    Merci beaucoup

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

Discussions similaires

  1. [2012] Liste d'élèves dans les notes sont égales à zéro
    Par boubker.atm dans le forum Développement
    Réponses: 9
    Dernier message: 20/09/2018, 22h25
  2. Base de données Access qui gère les notes des élèves
    Par bertiny dans le forum Bases de données
    Réponses: 7
    Dernier message: 12/04/2017, 14h14
  3. Réponses: 6
    Dernier message: 18/03/2010, 17h16
  4. [AC-2007] liste deroulante avec toutes les valeurs par défaut
    Par alexlb dans le forum IHM
    Réponses: 2
    Dernier message: 02/02/2010, 14h39
  5. [CLI] Liste les modifications par date ?
    Par eplic dans le forum CVS
    Réponses: 0
    Dernier message: 03/08/2007, 12h06

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