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

Requêtes et SQL. Discussion :

Requete ne donnant qu'un évènement s'il existe au moins une fois [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Août 2005
    Messages : 525
    Points : 194
    Points
    194
    Par défaut Requete ne donnant qu'un évènement s'il existe au moins une fois
    Bonjour à tous

    Un patient (T_Patient) peut venir plusieurs fois à l'hopital (T_Sejour). Il survit au premier séjour en réanimation mais décède au deuxième (T_reanimation). Je veux faire une requête ramenant tous les patients et donnant "Décédé" si malheureusement c'est le cas. Dans la requête suivante, le patient est à la fois vivant et décédé car elle tient compte du sejour où le patient est vivant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT T_Patient.ID_Patient, T_Patient.NIP, T_Patient.Nom_Patient, T_Patient.Prénom, T_Patient.Datenaissance, IIf([Date_DC] Is Not Null,"DCD","Vivant") AS Decede
    FROM (T_Patient INNER JOIN T_sejour ON T_Patient.ID_Patient = T_sejour.ID_Patient) INNER JOIN T_Réanimation ON T_sejour.ID_sejour = T_Réanimation.ID_sejour
    GROUP BY T_Patient.ID_Patient, T_Patient.NIP, T_Patient.Nom_Patient, T_Patient.Prénom, T_Patient.Datenaissance, IIf([Date_DC] Is Not Null,"DCD","Vivant");
    L'erreur vient de la conception de la base où la saisie du pronostic du patient se fait dans la table de réanimation et non dans la table du patient. Mais c'est difficile de faire autrement.
    Existe-t-il un moyen de s'en sortir ? D'autant que ce problème concerne d'autres paramètres (il a été transfusé dans le premier sejour et pas le deuxième mais je veux avoir "Transfusé" pour le patient qui l'a au moins été une fois, etc...)
    J'espère avoir été clair. Merci d'avance pour votre aide.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    le patient est à la fois vivant et décédé
    Ca s'appelle le paradoxe de Schrödinger

    dans le select, il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ...,Iif(MAX([Date_DC]) IS NOT NULL, "DCD", "Vivant") AS Decede
    Et retirer Iif([Date_DC] IS NOT NULL, "DCD", "Vivant") du GROUP BY

    ca devrait le faire normalement

    Philippe

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Août 2005
    Messages : 525
    Points : 194
    Points
    194
    Par défaut
    En fait je m'y connais aussi peu en physique quantique qu'en requête SQL
    En tout cas le code proposé "le fait" trés bien. Et pour toutes mes autres variables.
    Les statistiques de mon service vont baisser (il y aura moins de vivants) mais au moins elles seront exactes.
    Merci Philippe

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

Discussions similaires

  1. Requete qui marche une fois mais pas deux
    Par maxvador dans le forum Hibernate
    Réponses: 4
    Dernier message: 23/01/2007, 15h07
  2. Réponses: 1
    Dernier message: 23/11/2006, 19h07
  3. [MySQL] plusieurs requetes en une fois
    Par maximenet dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 31/07/2006, 11h57
  4. Requete sql donnant un resultat croisé dynamique
    Par Brice Yao dans le forum Langage SQL
    Réponses: 4
    Dernier message: 24/07/2005, 10h38
  5. Gestion des évènements lors d'un clique sur une image.
    Par yoghisan dans le forum Débuter
    Réponses: 7
    Dernier message: 23/06/2005, 19h04

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