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 :

2 recordset sur la même ligne


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 9
    Points : 7
    Points
    7
    Par défaut [RESOLU] 2 recordset sur la même ligne
    Bonjour,

    Je n'arrive pas à faire la requête suivante :
    j'ai une table Equipes, une table Composition et une table Joueurs, sachant qu'une équipe est composée de 2 joueurs, voici le schéma de ces tables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Equipes         Composition           Joueurs
    ID_Equipe       ID_Equipe             ID_Joueur
                    ID_Joueur             Nom
    Je voudrais afficher sur la même ligne le nom de chaque joueur constituant l'équipe, et non 2 recordset avec le nom de chaque joueur.

    Quelqu'un pourrait-il m'aider pour cela ?

    Merci

  2. #2
    Membre émérite
    Avatar de NoisetteProd
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    1 905
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 905
    Points : 2 614
    Points
    2 614
    Par défaut
    Salut !

    Je ne comprend pas tres bien ta question...

    Tu veux obtenir le resultat de cette requete pour faire quoi ? Tu la traite dans un soft ? C''est peut être là que tu devrait faire la mise en forme...

    Sinon, tu pourrait peut être revoir la table T_COMPOSITION en créant les colonnes suivantes :
    ID_EQUIPE
    ID_JOUEUR1
    ID_JOUEUR2

    Grâce à cela, tu pourrait suprimer la table T_EQUIPES

    Et du coup, tu pourait concaténer les colonnes ID_JOUEUR1 et ID_JOUEUR2 avec ||

    Voilà... je ne sais pas si ça peut t'aider !

    A+
    Fais cogiter ta Noisette !!

    Participez à la page SOURCES Delphi !

    Découvrez le Défi Delphi

    Mon Mail

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Suivant Merise, la table Composition est une association entre Equipes et Joueurs, et donc je dois obtenir le schéma suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Equipes            Composition             Joueurs
    ID_Equipe          ID_Equipe               ID_Joueur
                       ID_Joueur               Nom
    Ce que je voudrais c'est une requête qui me permettrait d'avoir le nom du 1er joueur et le nom du 2e joueur sur la même ligne; comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ID_Equipe   nomJoueur1   nomJoueur2
    et non d'avoir 2 lignes de résultats pour la même équipe, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ID_Equipe    nomJoueur1
    ID_Equipe    nomJoueur2
    Par la suite ces résultats seront mis dans un datagrid en vb.net pour la présentation.

  4. #4
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    si seulment 2 joueurs tu peux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Select ID_Equipe ,(Select Nom from Joueur
                                where id_joueur=(select min(id_joueur) 
                                                           from Composition a
                                                           where a.ID_Equipe=b.ID_Equipe)
                               )            , 
     
                             ( Select Nom from Joueur
                               where id_joueur=(select max(id_joueur) 
                                                           from Composition
                                                           Where a.ID_Equipe=b.ID_Equipe )
                               )
    from Composition b
    A+

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Ce n'est pas seulement 2 joueurs mais une liste d'equipe compose a chaque fois de 2 joueurs que je voudrais retirer. (desole pour le manque d'accent sur certaines lettres, clavier qwerty oblige)

  6. #6
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    et que te donne ma réponse corrigée icialias "a" oublié dans la sous requête du MAX):


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Select ID_Equipe ,(Select Nom from Joueur 
                                where id_joueur=(select min(id_joueur) 
                                                           from Composition a 
                                                           where a.ID_Equipe=b.ID_Equipe) 
                               )            , 
     
                             ( Select Nom from Joueur 
                               where id_joueur=(select max(id_joueur) 
                                                           from Composition a
                                                           Where a.ID_Equipe=b.ID_Equipe ) 
                               ) 
    from Composition b
    A+

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    Tu devrais faire ce traitement depuis VB
    Tu execute ta requete, puis depuis le recordset VB tu fais une boucle un peu ds ce style :
    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
     
    'Exectuion de la commande par le recordset...
    'ensuite :
    dim TeamTmp as string
    rs.movefirst
    teamTMP = rs!idequipe
    do While not rs.eof
         if rs!idEquipe   = TeamTmp then
          'joueur de la meme equipe donc tu affiches comme tu veux 
        else
          'Nouvelle equipe
        enf if
        TeamTmp = rs!idequipe
        rs.movenext
    loop
    je sais pas si ca va t'aider mais bon ....
    Ce n'est pas parce qu'ils sont beaucoup a avoir tort qu'ils ont raison.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    dble postes
    Ce n'est pas parce qu'ils sont beaucoup a avoir tort qu'ils ont raison.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci pour votre aide !
    ça marche très bien, j'ai réadapté la requête à mes besoin à partir de ce que MAMMAR m'a fournie.

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

Discussions similaires

  1. Sur la même ligne mettre du texte à gauche et à droite
    Par Oberown dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 20/06/2007, 15h50
  2. Comment disposer deux formulaires sur la même ligne ??
    Par soad029 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 05/05/2007, 04h14
  3. Réponses: 6
    Dernier message: 28/09/2005, 10h24
  4. Aligner du texte à gauche et à droite sur une même ligne ?
    Par pontus21 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/04/2005, 11h25
  5. 2 éléments sur une même ligne
    Par ben_iap dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/11/2004, 17h27

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