Bonjour à tous,
Je suis assez novice en requête et j'essaye de m'améliorer mais je galère encore pas mal. Je me permets de vous écrire car je bloque depuis ce matin et je désespère.
Voilà je fais une requête ou j'ai une liste de personnes qui ont une chambre associée dans la table histolit. La personne a pu avoir plusieurs lit au cours d'une même période. Du coup je voudrais n'avoir que le lit le plus récent.
Dans la table histolit il y a un numéro unique pour chaque enregistrement. Plus le numéro est grand plus c'est récent. Je me suis donc dit que j'allais récupérer le numéro le plus élevé pour récupérer le lit le plus récent à coup sûre en faisant un lien avec le numéro de dossier associé dans la table histolit et dans la table dossier où j'ai la liste des personnes.
Mais je ne sais pas pourquoi ça ne marche pas j'ai une liste à rallonge d'une même personne avec les différents lit où il a été. Je ne sais pas si je suis claire...
Si quelqu'un a un piste merci beaucoup et bonne journée.
Le bout de code en question :La requête entière :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 and hh.n_unique in(select max(hh.n_unique) from histolit hh where d.ndossier = hh.ndossier)
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
17
18
19
20
21
22
23
24 SELECT to_char(pr.d_rdv,'DD/MM/YYYY') daterdv, p.nom_pat, p.pre_pat, decode(sexe, 1, 'M', 2, 'F', '-') ,d.ndossier, dl.chambre, pr.motif, dp.nom_praticien from pra_rdv_r pr, dossier d, patient p, dpraticien dp , medsuiv m, histolit hh, dlit dl where pr.c_prat='SOR16' and pr.npatient is not null and pr.npatient in (select npatient from dossier where id_cli=:FINESS) and nvl(pr.etat_rdv,'RDV')<>'A' and pr.d_rdv>= #D(de) and trunc(d.date_entree)<=#D(jusquà) and pr.d_rdv>d.date_entree and d.ndossier<200000000 and d.npatient=pr.npatient and p.npatient=pr.npatient and trunc(pr.d_rdv) <= #D(jusquà) and dp.c_prat=m.c_prat and m.npatient=pr.npatient and hh.npatient=d.npatient and hh.n_hospi=d.ndossier and hh.num_lit IS NOT NULL and hh.n_unique in(select max(hh.n_unique) from histolit hh where d.ndossier = hh.ndossier) and dl.num_lit(+) = hh.num_lit and dl.c_serv(+) = hh.c_serv
Partager