Problème conversion chaine en date
Bonjour,
je suis sur une très grosse requête et je suis confronté à un souci, dans la sélection d'un champ, elle se présente de la manière suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
(
select (t1.salr)
from ccp_adh_periodes_n2 t1
where t1.id = recap.idgdh
and t1.per in ('2018M03')
) as "periode_2018M03",
..............
.............
from table2 recap
.....
..... |
ici c'est ok
L'idée est que lorsque je vais faire tourner la requête automatiquement elle va reprendre les données sur l'année en cours et les 2 précédentes, du coup je me réfère à sysdate pour cela, en récupérant l'année, mais quand je fais mes tests ça ne marche pas , car je fais ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
(
select (t1.salr)
from ccp_adh_periodes_n2 t1
where t1.id = recap.idgdh
and t1.per in concat(to_char(add_months(sysdate,0)-1, 'yyyy'),'M03') -- j'aimerais que la valeur qui est repris c'est 2018M03
) as "periode_2018M03",
(
select (t1.salr)
from ccp_adh_periodes_n2 t1
where t1.id = recap.idgdh
and t1.per in concat(to_char(add_months(sysdate,0)-2, 'yyyy'),'M03') -- j'aimerais que la valeur qui est repris c'est 2017M03
) as "periode_2017M03", |
quand je fais
Code:
1 2
|
concat(to_char(add_months(sysdate,-3), 'yyyy'),'M03') |
je veux reprendre les données sur l'année 2016 mais ça ne marche pas j'ai toujours les résultats sur l'année 2018,c'est à ce niveau qui doit y avoir un souci je crois quand je pense ne pas avoir l'année qui change, auriez vous une idée ?
un grand merci à vous