Bonjour ,
Requête SQL avec MS SQL server , pour simplifier
Table Analyses_et_Bilans
TESTID PK
TESTTYPE si valeur 1 analyse élémentaire , si valeur 4 c’est un Bilan (comporte N analyses)
COTATION
TESTID TESTTYPE COTATION Liste des analyses et bilans du Patient
---- ---------- --------------
10 1 80
20 4 130
30 1 60
40 1 10
50 1 20
Table BILANS
TESTID PK
COMBTESTID PK,FK
Remarque :
La COTATION d’un bilan est inférieure à la somme des cotations de chaque analyse élémentaire.
(ci-dessous le bilan TESTID =20 composé des analyses élémentaires 10 et 30 vaut 130 et non pas (80+60)
TESTID COMBTESTID OrdreAna
---- ------------ --------------
20 10 1
20 30 2
70 50 6
Je veux sélectionner les bilans et les analyses élémentaires qui ne sont pas dans les bilans de la liste ci-dessus
En utilisant LEFT OUTJOIN J’y arrive presque :
J’ai bien les bilans et analyses élémentaires qui ne sont pas incluses dans les bilans.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Select TESTID , COTATION from Table Analyses_et_Bilans T1 LEFT OUTER JOIN BILANS as T2 ON T1.TESTID=T2.COMBTESTID and TESTTYPE=1 where T2.COMBTESTID IS NULL
J’obtiens dans mon exemple les TESTID : 20 et 40 , il me manque la valeur 50
Donc il me manque des analyses élémentaires qui appartiennent à des bilans autres que ceux de ma liste pour mon patient.
Pourriez-vous m’aider svp ?
Partager