Forum,
Je cherche mais pour le moment, je ne trouve pas.
Mon problème est le suivant : mon but est d'obtenir une liste des dossiers dans lesquels une tâche (OFFICIAL_DECISION, SYSTEM, SUP_AGR) a été traitée (HANDLED). Jusque là, OK. Il faudrait que cette liste de dossier soit liée au fait qu'un trigger (Bas revenus) a été généré entre la date de traitement de la tâche (ci-avant) et cette date + 7 jours.
Voilà mon query :
Un des problèmes est qu'au niveau des tâches, je suis avec une DATE alors qu'au niveau des triggers, j'ai un TIMESTAMP.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 select f.file_number , to_char(t.handling_date, 'yyyymmdd') as DATE_Tk , flt.change_date as date_TRG from files f inner join tasks t on t.file_number = f.file_number and t.classification = 'OFFICIAL_DECISION' and t.type='SYSTEM' and t.description_french like '%SUP_AGR%' and t.status = 'HANDLED' INNER JOIN beneficiaries ben ON ben.file_number = f.file_number LEFT JOIN lumpsum_beneficiaries forf ON ben.actor_id = forf.actor_id inner join file_logging_triggers flt on flt.file_number = f.file_number and flt.description_french like '%-> Bas revenus%' and to_char(flt.change_date, 'yyyymmdd') between to_char(t.handling_date,'yyyymmdd') and to_char(t.handling_date + 7 , 'yyyymmdd') ;
Du coup, j'ai une redondance car dans un dossier au moins, j'ai deux triggers à quelques secondes d'écart. Voir cette image :
Comment puis-je faire pour que :
- Si j'ai deux triggers le même jour, je ne garde que le premier (pour autant que je sois dans la période)
- Si j'ai deux triggers sur deux jours différents (et toujours dans la priode), je ne garde que le premier
Je pense que c'est clair... pour moi. Si ce l'est moins pour vous, n'hésitez pas à poser les questions.
Merci,
Partager