Bonjour,
Voici ma requête:
Mon problème est que j'ai parfois des doublons à cause de la table SUIVI.
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 WITH tmp AS( SELECT P.NOM,P.PRENOM,P.DTENAI,P.TEL,S.NUMPAT,S.HEURE,S.NOMBOSS,S.SUIVI,x.numobj, DENSE_RANK () OVER (PARTITION BY P.numpat ORDER BY x.NUMOBJ DESC) AS rnk FROM SUIVI S right OUTER JOIN PATIENTS P ON p.numpat =s.numpat INNER JOIN OBJETS x on (x.numpat = s.numpat) WHERE S.NUMPAT <> 0 AND S.DTEDEB = TO_DATE('03/22/2013','MM/DD/YYYY') AND S.SUIVI NOT IN ('CNG') AND (S.NUMSRV = 0 OR S.NUMSRV = 26) AND (S.NUMSITE = 1 OR S.NUMSITE IS NULL) AND P.NUMPAT = S.NUMPAT AND S.NUMDESCRIPTION<>0 AND NOMSALLE IS NULL AND x.DEFFEN=10082 AND x.COMPTERENDU NOT LIKE '%«DTEACC»__/__/__%' AND S.SUIVI not IN ('---','LEC','VAL','LTR','ATP')) SELECT * FROM tmp WHERE rnk = 1
J'avais pensé à faire un Group By sur le numobj mais ça ne fonctionne pas:
ORA-00928: mot-clé SELECT absent.
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 WITH tmp AS( SELECT P.NOM,P.PRENOM,P.DTENAI,P.TEL,S.NUMPAT,S.HEURE,S.NOMBOSS,S.SUIVI,x.numobj, DENSE_RANK () OVER (PARTITION BY P.numpat ORDER BY x.NUMOBJ DESC) AS rnk FROM SUIVI S right OUTER JOIN PATIENTS P ON p.numpat =s.numpat INNER JOIN OBJETS x on (x.numpat = s.numpat) WHERE S.NUMPAT <> 0 AND S.DTEDEB = TO_DATE('03/22/2013','MM/DD/YYYY') AND S.SUIVI NOT IN ('CNG') AND (S.NUMSRV = 0 OR S.NUMSRV = 26) AND (S.NUMSITE = 1 OR S.NUMSITE IS NULL) AND P.NUMPAT = S.NUMPAT AND S.NUMDESCRIPTION<>0 AND NOMSALLE IS NULL AND x.DEFFEN=10082 AND x.COMPTERENDU NOT LIKE '%«DTEACC»__/__/__%' AND S.SUIVI not IN ('---','LEC','VAL','LTR','ATP'))group by x.numobj SELECT * FROM tmp WHERE rnk = 1
Comment faire pour ne plus avoir de doublons ?
D'avance merci
Partager