Bonjour,

voici les tables et les champs dont j'ai besoin pour ma requête:
C_QUESTION (NIQ,LIBABR,..) (table de questions)
BM_REP_S (NIR,REPONSE,NILIB,..) (table de reponses)
BM_LIB_S (NILIB,NIQ,NIQSUP,NILIBSUP,PARENTE,...) (table de correspondance entre les question-reponse et leur questions mère)
PENSOINS.BM_TH_S (NITH,NIPATIENT,NISEJOUR,..)
PENSOINS.SEJOUR (NISEJOUR,NIPATIENT,..)
PENSOINS.PATIENT (NIPATIENT,NIP,NOM,PRENOM,...)

j'ai fais une requête qui marche très bien. mais je pense qu'elle peux être optmisée, et c'est pour cette raison que je demande votre aide

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
25
26
27
28
29
30
31
select p.NIP, p.NOM, p.PRENOM,r4.REPONSE as "date examen",r5.REPONSE as "Heure examen",q3.LIBABR,r3.REPONSE
from PENSOINS.BM_LIB_S lib3,
PENSOINS.BM_LIB_S lib4,
PENSOINS.BM_LIB_S lib5,
PENSOINS.C_QUESTION q3,
PENSOINS.BM_REP_S r3,
PENSOINS.C_QUESTION q4,
PENSOINS.BM_REP_S r4,
PENSOINS.C_QUESTION q5,
PENSOINS.BM_REP_S r5,
PENSOINS.BM_TH_S th3,
PENSOINS.SEJOUR sj, 
PENSOINS.PATIENT p
where lib3.PARENTE like '674,%'
and lib3.NIQ = q3.NIQ 
and lib3.NILIB = r3.NILIB
and lib3.NIQSUP is NULL
and lib3.NILIBSUP is NULL
and lib3.NITH = th3.NITH
and lib4.NIQ = q4.NIQ 
and lib4.NILIB = r4.NILIB
and q4.LIBABR like 'Date de l%'
and lib5.NIQ = q5.NIQ 
and lib5.NILIB = r5.NILIB
and q5.LIBABR like 'Heure de l%'
and lib3.NITH = lib5.NITH
and lib3.NITH = lib4.NITH
and sj.NISEJOUR = th3.NISEJOUR
and p.NIPATIENT = sj.NIPATIENT
and not exists (select lib1.NIQSUP from PENSOINS.BM_LIB_S lib1 where lib1.PARENTE like '674,%' and lib3.NIQ = Lib1.NIQSUP)
order by 2,4,5,6
je vous remercie d'avance