Bonjour,
je ne vois pas trop comment expliquer ma problématique, du coup je vais vous donner un exemple.
J'utilise une base de données PostgreSql que je ne peux pas modifier.
Soit une table avec les infos suivantes :
N° client Type de dossier N° de dossier ... 1000 Perfusion 1 ... 1000 Perfusion 40 ... 1000 Perfusion 130 ... 1000 Nutrition 90 ... 1000 Nutrition 10 ... 1005 Nutrition 52 ... 1005 Nutrition 68 ...
Je souhaiterais ne conserver que le dernier dossier de chaque type de chaque patient :
N° client Type de dossier N° de dossier ... 1000 Perfusion 130 ... 1000 Nutrition 90 ... 1005 Nutrition 68 ...
En sachant que le numéro de dossier est unique.
La seule façon que j'ai trouvée qui me parait ultra lourde et galère :
Car là, dans l'exemple, il n'y a que 2 types de dossiers mais dans ma base, il y en a beaucoup...
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 SELECT * FROM table WHERE N° de dossier IN ( SELECT MAX(N° de dossier) FROM table WHERE Type de dossier = 'PERFUSION' GROUP BY N° de client UNION SELECT MAX(N° de dossier) FROM table WHERE Type de dossier = 'NUTRITION' GROUP BY N° de client )
Auriez-vous une autre idée pour arriver au résultat voulu plus simplement et si possible, plus rapidement ?
Merci.
Partager