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

SQL Oracle Discussion :

Requête en fonction de la tuple précédente


Sujet :

SQL Oracle

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut Requête en fonction de la tuple précédente
    Bonjour,

    alors j'ai une table de patients avec un identifiant patient et un identifiant consultation qui doit être unique.

    dans la base il arrive qu'il y ait un même patient avec 2 identifiants consultation identiques. Je souhaite repérer ses patients, mais ne me souviens plus comment faire .

    j'ai donc une ligne : idpatient idconsult date consult (la date etant différente) soit plusieurs lignes pour chaques patients.

    j'ai tenté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT idpat, idconsult FROM consult as T1 INNER JOIN consult as T2 ON T1.idpat=T2.idpat AND T1.idconsult = T2.idconsult;
    malheureusement ça n'est pas ce qu'il faut faire...
    quelqu'un aurait-il une petite idée ?

    Merci d'avance

  2. #2
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Bonjour,

    Si j'ai bien compris ton problème l'utilisation du having me semble bien ici.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     SELECT idpat, idconsult
    FROM consult
    HAVING count(*) > 1

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Je ne suis pas sûr d'avoir bien compris votre problème (il manque quelques données), mais peut-être que vous cherchez ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      SELECT idpat
        FROM consult
    GROUP BY idpat
      HAVING count(distinct idconsult) <> count(*)
         AND count(*) > 1;
    Lola06, le group by serait-il parti au ski ?

  4. #4
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    En fait il a une même patient pour qui il a deux fois le même identifiant consultation.
    Donc on peut supposer qu'il doit trouver les couples {idpat idconsult} qui sont en double (ou plus) dans sa base.

    Pour cet exemple il doit ressortir le couple {1,2}

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     idpat | idconsult
    1      | 1
    1      | 2
    1      | 2
    2      | 3
    2      | 5
    On peut améliorer ma requête pour qu'il voit combien de fois le couple est présent dans la base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT idpat, idconsult, count(*) NbOccurrences
    FROM consult
    GROUP BY idpat, idconsult
    HAVING count(*) > 1

Discussions similaires

  1. [SQL] Requêtes en fonction de points
    Par Anduriel dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/09/2006, 12h54
  2. requête avec fonction week()
    Par Sebastien_INR59 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 27/06/2006, 18h05
  3. [ODBC] Requête en fonction de listbox
    Par cciocc dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/05/2006, 15h59
  4. Requête en fonction d'un DataSource
    Par Cool Coyote dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/09/2005, 17h48
  5. Modifier une requête en fonction de boutons d'option
    Par JahRastafari dans le forum Access
    Réponses: 17
    Dernier message: 15/06/2005, 13h42

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