Bonjour à tous,


Je recherche en vain une solution pour mettre en oeuvre différente condition de type if then else sur ma requête SQL.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
SELECT pat_ipp, 
sej_no_entree, 
mvt_sej_oid, 
mvt_date, 
mvt_nature
FROM DAT_SEJOUR 
JOIN regul_sej_pmsi ON sp_hospit = sej_hospit
JOIN regul_mouvements ON sp_mvt_sortie = mvt_oid 
JOIN patient.patients ON PAT_ID = SP_PATIENT
WHERE sej_no_entree = '118040547'
GROUP BY pat_ipp, sej_no_entree, mvt_sej_oid,mvt_date, mvt_nature;

PAT_IPP SEJ_NO_ENTREE MVT_SEJ_OID MVT_DATE MVT_NATURE
4775 118040547 2675847 20/07/18 3
4775 118040547 2675847 24/07/18 1


Voici le résultat de ma requête qui, actuellement ne me convient pas, je souhaiterai avoir une seule ligne.
Tout dépend de la valeur de mvt_nature.

Dans le cas où la ligne avec la valeur max de mvt_date à pour valeur de mvt_nature à 1 je souhaiterai renvoyer dans le champ mvt_date une valeur null
Si par contre le champ mvt_nature est égal à 3 alors on renvoie mvt_date, dans ce cas voici ce que je souhaite.

PAT_IPP SEJ_NO_ENTREE MVT_SEJ_OID MVT_DATE MVT_NATURE
4775 118040547 2675847 '' 1

Ci dessous un second exemple expliquant le résultat de la seconde condition.

PAT_IPP SEJ_NO_ENTREE MVT_SEJ_OID MVT_DATE MVT_NATURE
4775 118040547 2675847 20/07/18 3
4775 118040547 2675847 24/07/18 1
4775 118040547 2675847 28/07/18 3

Ce que j'attends.

PAT_IPP SEJ_NO_ENTREE MVT_SEJ_OID MVT_DATE MVT_NATURE
4775 118040547 2675847 28/07/18 3

En vous remerciant par avance pour votre aide.