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 PostgreSQL Discussion :

Requête avec every ?


Sujet :

Requêtes PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2004
    Messages : 28
    Par défaut Requête avec every ?
    Bonjour à tous

    Je m'occupe d'une base de patients contenant certains résultats d'analyse.
    Je cherche a obtenir la liste des patients n'ayant que des résultats contenant le signe "<", et pour ce faire je me suis inspirée d'une requête ayant été codée il y a quelques années par un ancien admin.
    Malheureusement, le résultat n'est pas correct. Cette requête me donne les patients ayant une analyse avec un "<", et non les patients n'ayant que des résultats avec un "<".

    Du coup j'ai un sérieux doute sur l'existence d'EVERY dans postgres et de la justesse de l'ancienne requete.

    EVERY existe-t-il et si non, il y a un palatif pour faire ce genre de requete ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT DISTINCT p.id
    FROM patient p
    JOIN infection i ON i.id_patient = p.id
    LEFT JOIN lab l ON l.id_patient = p.id
    WHERE i.id_virus = 4
    GROUP BY p.id ,l.s_hcv_viral_load
    HAVING EVERY(l.s_hcv_viral_load LIKE '%<%')
    ORDER by p.id

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    EVERY existe bien mais dans cette requête le problème est dans le GROUP BY.

    S'il faut pour chaque patient vérifier que toutes les valeurs de l.s_hcv_viral_load vérifient la condition, alors il faut faire GROUP BY p.id au lieu de GROUP BY p.id, l.s_hcv_viral_load

    Requête modifiée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT p.id
    FROM patient p
    JOIN infection i ON i.id_patient = p.id
    JOIN lab l ON l.id_patient = p.id
    WHERE i.id_virus = 4
    GROUP BY p.id
    HAVING EVERY(l.s_hcv_viral_load LIKE '%<%')
    ORDER BY p.id
    Au passage j'ai simplifié en enlevant le DISTINCT qui est inutile du fait du GROUP BY et remplacé le LEFT JOIN lab par un JOIN lab puisque s'il n'y pas d'entrée dans lab pour le patient, s_hcv_viral_load est NULL et par conséquent la condition s_hcv_viral_load LIKE '%<%' est fausse.

  3. #3
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2004
    Messages : 28
    Par défaut
    Et bien ....

    Ca fonctionne très bien !

    Un énorme merci pour votre aide, quand à moi je vais aller prendre des vacances je suis honteuse d'être passé à coté de celà ...

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

Discussions similaires

  1. Problème requête avec UNION et ORDER BY
    Par Yann21 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 12/12/2003, 11h02
  2. Requète avec NOT EXISTS
    Par missllyss dans le forum SQL
    Réponses: 2
    Dernier message: 23/09/2003, 15h20
  3. Requête avec l'expression Like
    Par Mvu dans le forum ASP
    Réponses: 3
    Dernier message: 02/09/2003, 09h39
  4. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33
  5. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02

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