PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 18/07/2016 12:20:20

Douk V5
Banni(e)

fonction pour les mois

slt à tous,


Quelqu'un peut-il m'aider svp?

je veux une fonction qui prend en paramètre un mois et me retourne le mois-1.


exple: PreviewMonth(juillet)   ==> me retourne "juin"


En effet je travaille avec Pentaho reporting et j'ai un paramettre mois qui me permet de faire un certain nombre de calcul.


Merci de venir en aide!

Hors ligne

#2 24/07/2016 17:35:43

gleu
Administrateur

Re : fonction pour les mois

Pour cela, il faut écrire une fonction, soit en SQL soit en PL/pgsql. Voir http://docs.postgresql.fr/9.5/plpgsql.html pour ce dernier.


Guillaume.

Hors ligne

#3 26/07/2016 17:33:57

Douk V5
Banni(e)

Re : fonction pour les mois

slt gleu,

En fait je sais que c'est avec le PL/pgsql que je doit le résoudre. Mais je voulais avoir la solution d'une personne puisque que je réfléchissait comment gérer sans solution. J'ai eu a solutionner quelque chose de ce genre dans mes précédent post.

Merci pour le lien. Je me lance encore.

Mais si quelqu'un a un lien qui a déjà résolu mon problème, je suis dans l'attente.

cdlt,

Hors ligne

#4 29/07/2016 17:26:40

Douk V5
Banni(e)

Re : fonction pour les mois

Slt à tous,


En réfléchissant, j'ai tout bêtement écrit la fonction sql qui suit pour essayer de résoudre mon problème.
C'est vrai je ne l'ai pas encore testé dans ma requête. Mais je reste convaincu que je serai buté.
Quelqu'un aurai-t-il une .autre possibilité?  hmm hmm



Douk V5 a écrit :

CREATE OR REPLACE FUNCTION moisprecedent(mois text)
  RETURNS text AS
$$
  SELECT
    CASE when $1='Decembre' then 'Novembre'
             when $1='Novembre' then 'Octobre'
             when $1='Octobre'  then 'Septembre'
             when $1='Septembre' then 'Août'
             when $1='Août' then 'Juillet'
             when $1='Juillet' then 'Juin'
             when $1='Juin' then 'Mai'
             when $1='Mai' then 'Avril'
             when $1='Avril' then 'Mars'
             when $1='Mars' then 'Février' 
             when $1='Février' then 'Janvier' 
             when $1='Janvier' then 'Decembre'
     END as mois;
$$
  LANGUAGE sql;


Cordialement,

Hors ligne

#5 30/07/2016 14:31:16

gleu
Administrateur

Re : fonction pour les mois

Ça me paraît très bien. En tout cas, ça fonctionne et je ne vois pas de solution plus propre que ça.


Guillaume.

Hors ligne

#6 01/08/2016 15:02:19

Douk V5
Banni(e)

Re : fonction pour les mois

Douk V5 a écrit :

OK! Merci. Je reviendrai vers vous en cas de problème tongue tongue

Hors ligne

Pied de page des forums