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 :

Identifier des événements sur plusieurs conditions


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Identifier des événements sur plusieurs conditions
    Bonjour
    Je travaille sur des bases médicales avec des séjours d'hospitalisations de patients.
    Je souhaite retrouver pour un patient (P) qui a eu un acte (X) à une date donnée (DateX) tous les séjours (S) à la condition que celui-ci débute (DateS) dans les 30 jours suivant une intervention qu'il a eu précédemment, sachant qu'un patient peut avoir plusieurs plusieurs interventions donc plusieurs dates.
    Je sais pas si c'est suffisant pour m'aider à écrire ca en SQL ?
    Merci
    Damien

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Non ce n'est pas suffisant. Il nous faudrait les tables et leur relations.
    L'acte X est-il dans une table Acte avec une foreign key sur une venue, sur le séjour? Il y a t-il un lien entre l'intervention et l'acte ? ou pas.
    Sans le modèle de données on ne pourra pas t'aider.
    Cordialement
    Soazig

  3. #3
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Merci pour votre mail.
    Il y a plusieurs tables toutes reliées par l'identité du séjour. Le script que j'utilise pour sélectionner les variables est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select distinct adm.nopt PATIENT, adm.nom NOM, adm.prenom PRENOM, adm.ddn DDN, sjr.datedb deb_sej, sjr.datefin fin_sej, acte.CCAM ACTE, acte.REALISATION DATEACTE 
    from adm, sjr, acte 
    where adm.sjr = sjr.numsjr and adm.sjr=acte.sjr

    adm= table administrative
    sjr= table des séjours
    acte= table des actes.

    Je précise que je dois faire une présélection sur la table acte des séjours commençant par les lettres LMMA pour ensuite retrouver:
    - les données des sjrs correspondant (ça j'y arrive)
    - les données des sjrs avec une date de début maximum dans les 30 jours suivant la date de réalisation de l'acte.
    Merci pour votre aide.
    Damien

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Dans ton premier post tu parles d'intervention, je n'en vois pas trace dans ta dernière réponse.
    Cordialement
    Soazig

  5. #5
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Bonjour
    Intervention= acte, merci !
    Damien

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    ReBonjour,
    Est-ce que cette reformulation convient
    Je souhaite retrouver pour un patient (P) qui a eu un acte de code CCAM commencant par LMMA à une date donnée (DateX) tous les séjours (S) à la condition que celui-ci débute (DateS) dans les 30 jours suivant cet acte , sachant qu'un patient peut avoir plusieurs plusieurs actes donc plusieurs dates.
    Est-ce que le patient est fixé, est-ce que la date est fixé
    Soazig

  7. #7
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Oui tout à fait à ceci près: «*à condition que ce séjour débute entre 0 et 30 jours suivant l’acte*»
    Merci

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Rebonjour,
    Je propose ceci
    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
    select  a.nopt PATIENT, a.nom NOM, a.prenom PRENOM, a.ddn DDN, s.datedb deb_sej, s.datefin fin_sej s.numsjr
    from adm a
    inner join  sjr s
    	on a.sjr = s.numsjr
    where exists (select null 
    	      from adm a2
     		inner join  sjr s2
    			on a2.sjr = s2.numsjr
    		inner join acte ac
    			on s2.numsjr=ac.sjr
    		where a.nopt=a2.nopt
    		and s.datedb<ac.realisation+30
    		and s.datedb>=ac.realisation
    		and s.numsjr<>s2.numsjr
    		and ac.CCAM like 'LMMA'
    	     )
    J'ai considéré qu'un même patient avait un nopt identique dans adm. J'ai exclu le séjour où l'acte a été réalisé.
    La modélisation semble étonnante , l'identité du patient étant répliqué pour toutes les lignes d'adm notamment.

    Cordialement
    Soazig

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    On peut supprimer une jointure (sur sejour) dans la sous-requete, ce qui donne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    select  a.nopt PATIENT, a.nom NOM, a.prenom PRENOM, a.ddn DDN, s.datedb deb_sej, s.datefin fin_sej s.numsjr
    from adm a
    inner join  sjr s
    	on a.sjr = s.numsjr
    where exists (	select null 
    		from	      adm a2
    		inner join acte ac
    			on a2.sjr=ac.sjr
    		where a.nopt=a2.nopt
    		and s.datedb<ac.realisation+30
    		and s.datedb>=ac.realisation
    		and s.numsjr<>ac.sjr
    		and ac.CCAM like 'LMMA'
    	     )
    a+
    Soazig

  10. #10
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Merci je vais regarder quand j’aurai accès aux bases et vous dirais

  11. #11
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Cela n'a pas fonctionné, je pense qu'il y a d'autres correspondances.
    Je vais faire une extraction simple et voir sur excel.
    Merci en tous cas pour votre aide.
    Damien

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/01/2019, 15h20
  2. [AC-2007] Identifier des doublons sur plusieurs champs.
    Par neiluj26 dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 22/09/2010, 20h49
  3. [Swing] Imprimer des JeditorPane sur plusieurs pages ?
    Par bilou_lelapinou dans le forum AWT/Swing
    Réponses: 22
    Dernier message: 29/11/2006, 22h28
  4. Réponses: 4
    Dernier message: 25/11/2005, 18h15
  5. Réponses: 2
    Dernier message: 18/11/2005, 21h40

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