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 :

Avoir 2 enregistrements sur une meme ligne


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 67
    Points : 49
    Points
    49
    Par défaut Avoir 2 enregistrements sur une meme ligne
    Bonjour, je voudrais faire une requête qui m'affiche 2 informations de 2 enregistrements sur une même ligne.

    Je m'explique j'ai une table Patient, une table de professionnel de santé et entre les 2, une table pour savoir quel pro s'occupe de tel patient (relation classique avec uniquement les ID des deux tables).

    Il y a aussi une table qui permet de choisir le type de pro.

    On me demande de faire un tableau de suivi avec les infos du patient et de 2 professionnel (code type MG et IDE) qui y sont forcement (l'ajout d'un patient oblige de choisir un MG et un IDE)

    Avec une requete basique je me retrouve donc avec 2 lignes par patient (une pour le MG et l'autre pour l'IDE).


    Je pensais qu'avec ceci c'était peut être possible mais cela ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT PATIENT.NomPatient, PATIENT.PrenomPatient, PATIENT.NumeroPatientAssoc, 
    P1.TitreProfessionnel as titreMG, P1.PrenomProfessionnel as PrenomMG, P1.NomProfessionnel as NomMG, 
    P2.TitreProfessionnel as titreIDE, P2.PrenomProfessionnel as PrenomIDE, P2.NomProfessionnel as NomIDE, 
    FROM TYPE_PROFESSIONNEL_SANTE T1,TYPE_PROFESSIONNEL_SANTE T2, PATIENT,PRENDRE_EN_CHARGE, PROFESSIONNEL P1, PROFESSIONNEL P2
    where PATIENT.NumeroPatientAssoc = PRENDRE_EN_CHARGE.ID_PATIENT
    and P1.ID_PROFESSIONNEL = PRENDRE_EN_CHARGE.ID_PROFESSIONNEL
    and T1.ID_TYPE_PROFESSIONNEL = P1.ID_TYPE_PRO
    and T1.RaccourciCodePro="MG"
    and P2.ID_PROFESSIONNEL = PRENDRE_EN_CHARGE.ID_PROFESSIONNEL
    and T2.ID_TYPE_PROFESSIONNEL = P2.ID_TYPE_PRO
    and T2.RaccourciCodePro="IDE"
    C'est une base sous Access 2003 format access 2000

    Il n'y aura aucune modif des données par la suite, c'est juste pour faire un affichage comme il me le demande.

    Merci pour votre aide

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 912
    Points : 51 675
    Points
    51 675
    Billets dans le blog
    6
    Par défaut
    1) utilisez des JOIN
    2) utilisez des alias
    3) des chaines de caractères s'entourente d'apostrophes pas de guillemets

    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
    21
    22
    23
    SELECT P.NomPatient, P.PrenomPatient, P.NumeroPatientAssoc, 
           P1.TitreProfessionnel AS titreMG, 
           P1.PrenomProfessionnel AS PrenomMG, 
           P1.NomProfessionnel AS NomMG, 
           P2.TitreProfessionnel AS titreIDE, 
           P2.PrenomProfessionnel AS PrenomIDE, 
           P2.NomProfessionnel AS NomIDE, 
     
    FROM PATIENT AS P
     
         INNER JOIN PRENDRE_EN_CHARGE AS PEC
               ON P.NumeroPatientAssoc = PEC.ID_PATIENT
         INNER JOIN PROFESSIONNEL P1
               P1.ID_PROFESSIONNEL = PEC.ID_PROFESSIONNEL
         INNER JOIN TYPE_PROFESSIONNEL_SANTE T1
               ON T1.ID_TYPE_PROFESSIONNEL = P1.ID_TYPE_PRO     
         INNER JOIN TYPE_PROFESSIONNEL_SANTE T2
               ON P2.ID_PROFESSIONNEL = PEC.ID_PROFESSIONNEL      
         INNER JOIN PROFESSIONNEL P2 
               ON T2.ID_TYPE_PROFESSIONNEL = P2.ID_TYPE_PRO
     
    WHERE  T1.RaccourciCodePro = 'MG'
      AND T2.RaccourciCodePro = 'IDE'
    A +

Discussions similaires

  1. [c shell] if then else sur une meme ligne
    Par mhtrinh dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 15/11/2007, 16h31
  2. Comment avoir des div sur une même ligne sans utiliser float ?
    Par Sergejack dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 13/10/2007, 15h31
  3. enregistrements sur une seul ligne d'une zone de texte
    Par maverick91 dans le forum Access
    Réponses: 5
    Dernier message: 12/06/2007, 11h35
  4. Réponses: 3
    Dernier message: 20/05/2007, 23h41
  5. debutant lecture de plusieur variable sur une meme ligne
    Par Slumpy dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 16/06/2006, 19h37

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