Bonjour,
J'ai un problème avec une requête que je n'arrive pas à faire.
Mon besoin est le suivant :
Dans un contexte métier lié à la paie je souhaiterai regrouper des montants en fonction de plusieurs critères/dates.
Les paramètres d'entrés sont une date de début @DATE_DEBUT et une date de fin @DATE_FIN qui définisse une période (une année fiscale)
J'ai besoin de récupérer des montants retro (dont la date de paie et la date d'allocation sont différentes ) qui sont antérieur à cette période mais dont la paie est calculée sur la période en cours (définit par les 2 paramètres)
Je dois également regrouper séparément les montants retro sur la période en cours si MIN(DATE_ALLOC) < DATE_DEBUT, donc si la date d'allocation la plus ancienne est antérieur à la période en cours.
La requête peut se décomposer en 2 sous requêtes je pense :
La première retourne des montants retro < DATE_DEBUT
la deuxième retourne les montants retro sur la période en cours SEULEMENT si le MIN(DATE_ALLOC) < DATE_DEBUT
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select ID_HR,OR_HR,SUM(MONTANT_A),SUM(MONTANT_B), CRITERE A, CRITERE B from TABLE A where DATE_ALLOC <> DATE_PAIE and DATE_PAIE >= @DATE_DEBUT and DATE_PAIE <= @DATE_FIN and DATE_ALLOC < @DATE_DEBUT GROUP BY ID_HR,OR_HR, CRITERE_A, CRITERE_B
Alors évidement la requête n'est pas correct et il n'est pas possible de mettre un MIN dans un where mais c'est juste pour illustrer le besoin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 select ID_HR,OR_HR,SUM(MONTANT_A),SUM(MONTANT_B), CRITERE A, CRITERE B from TABLE A where DATE_ALLOC <> DATE_PAIE and DATE_PAIE >= @DATE_DEBUT and DATE_PAIE <= @DATE_FIN and DATE_ALLOC >= @DATE_DEBUT AND MIN(DATE_ALLOC) < @DATE_DEBUT GROUP BY ID_HR,OR_HR, CRITERE_A, CRITERE_B
Merci d'avance si quelqu'un peut m’éclairer.
Partager