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.
Partager