Requête SQL avec condition
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:
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.