Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2012, 11h47   #1
Membre actif
 
Inscription : mai 2004
Messages : 478
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 478
Points : 154
Points : 154
Envoyer un message via MSN à maysa
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 :
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
maysa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 11h56   #2
Membre Expert
 
Avatar de lola06
 
Femme Laure
Consultante en Business Intelligence
Inscription : avril 2007
Messages : 987
Détails du profil
Informations personnelles :
Nom : Femme Laure
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultante en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : avril 2007
Messages : 987
Points : 1 702
Points : 1 702
Bonjour,

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

Code :
1
2
3
 SELECT idpat, idconsult
FROM consult
HAVING count(*) > 1
__________________
~ Lola ~

Ne pas oublier :
et aussi :
lola06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 12h01   #3
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 688
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 688
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
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 :
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 ?
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 12h35   #4
Membre Expert
 
Avatar de lola06
 
Femme Laure
Consultante en Business Intelligence
Inscription : avril 2007
Messages : 987
Détails du profil
Informations personnelles :
Nom : Femme Laure
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultante en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : avril 2007
Messages : 987
Points : 1 702
Points : 1 702
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 :
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 :
1
2
3
4
5
SELECT idpat, idconsult, count(*) NbOccurrences
FROM consult
GROUP BY idpat, idconsult
HAVING count(*) > 1
__________________
~ Lola ~

Ne pas oublier :
et aussi :
lola06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h12.


 
 
 
 
Partenaires

Hébergement Web