Bonjour à tous,
Je soumets à votre réflexion un petit exercice a priori simple mais que je n'arrive pas à résoudre.
J'ai une table d'actions (tâches de travail en quelque sorte), dont j'extrais certaines avec un critère. Jusque là ok.
Je souhaite pour ces actions extraites savoir s'il y a une action suivante faite dans les 2 jours suivants, ou pas (on est toujours sur la même table).
En clair :
- Soit une action est faite dans les 2 jours suivant une tâche extraite ==> réponse à sortir : 'OUI'
- Soit pas d'action ou une action au délà de 2 jours ==> réponse à sortir : 'NON'
Voici ma requête pour l'instant. Celle-ci me retourne le bon nombre d'enregistrements. Il manque le fameux OUI/NON pour chaque enregistrement.
Je précise pour la compréhension que pour ces actions, il y une notion de "demande" (colonnes SRA_SR_ID/SR_NUM) qu'on pourrait considérer comme un projet. Donc pour chaque projet il y a plusieurs actions.
Code :
SELECT DISTINCT
tActions.TODO_CD AS 'Type Action'
,tActions.NAME AS 'Résumé Action'
,Convert(Char(10), tActions.CREATED, 103) + ' ' + Convert(Char(8), tActions.CREATED, 108) AS 'Date Heure Action'
,tActions.SRA_SR_ID AS 'N° Demande'
FROM samprd.dbo.S_EVT_ACT tActions
FULL OUTER JOIN samprd.dbo.S_SRV_REQ tDemande
ON tActions.SRA_SR_ID = tDemande.SR_NUM
FULL OUTER JOIN samprd.dbo.S_EVT_ACT tActionSuivante
ON tActionSuivante.SRA_SR_ID = tDemande.SR_NUM
--AND tActionSuivante.CREATED > tActions.CREATED
WHERE
tActions.NAME LIKE '%bla bla bla%'
AND NOT tActionSuivante.NAME LIKE '%bla bla bla%'
and tActionSuivante.SRA_SR_ID = tActions.SRA_SR_ID
ORDER BY tActions.SRA_SR_ID
Ai-je bien exposé mon problème ?
J'ai essayé avec des CASE WHEN, des curseurs, mais sans succès.
Ensuite la petite subtilité consistera à ne pas compter les jours fériés et week-ends dans les 2 jours, mais ça je devrais y arriver en adaptant ma fonction :
http://www.sqlfr.com/codes/CALCUL-DIFFERENCE-DATE-FONCTION-JOURS-FERIES-TRAVAILLES-PLAGE_50022.aspx
Merci d'avance pour vos avis !!