Bonjour,
j'ai une requête qui doit me retourner des résultats, en fonction de l'année N-1 (précédente), dont l'année est passé en paramètre mais je n'arrive pas à bien établir la condition, sachant que dans ma base, le champ DateExercice est passé en paramètre.
voici ma 1ere requete :
j'ai l'erreur suivante qui s'affiche :ORA-01843: ce n'est pas un mois valide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 select sum(ROUND(tIndem._indemnite,2)) as tot_ind from ccp_cge_paiements_n3 tIndem inner join table1 T20 on tIndem.idc420= T20.id inner join table2 t26 on t26.id=tIndem._idREF and T20.DATEEXERCICE >= to_char(add_months(to_date('01/01/'||'2017','dd/mm/yyyy'),-12),'yyyy') //probleme ici and T20.DATEEXERCICE <= to_char(add_months(to_date('31/12/'||'2017','dd/mm/yyyy'),-12),'yyyy')//probleme ici
01843. 00000 - "not a valid month"
*Cause:
*Action:
et pareil ici :
sachant que le champ t6._campagne est un varchar2 et T20.DATEEXERCICE correspond à un timestamp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 and t6._campagne= '2017'
Lors de mes tests j'ai fais ceci:
et il me retourne bien 2016 .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select to_char(add_months(to_date('31/12/'||'2017','dd/mm/yyyy'),-12),'yyyy') FROM dual;
Pour principe, j'ai un logiciel et dans ma requete j'ai ceci :
où $annee est un paramètre et c'est l'utilisateur qui renseigne une année, donc s'il renseigne par exemple 2015, je voudrais que ma requete me retourne tout ce que je demande sur l'année 2014.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 select sum(ROUND(tIndem._indemnite,2)) as tot_ind from ccp_cge_paiements_n3 tIndem inner join table1 T20 on tIndem.idc420= T20.id inner join table2 t26 on t26.id=tIndem._idREF and T20.DATEEXERCICE >= to_char(add_months(to_date('01/01/'||'$annee','dd/mm/yyyy'),-12),'yyyy') and T20.DATEEXERCICE <= to_char(add_months(to_date('31/12/'||'$annee','dd/mm/yyyy'),-12),'yyyy') ...... ...... and t6._campagne= '$annee'
Un grand merci pour vos conseils
Partager