Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/07/2007, 11h10   #1
Invité de passage
 
Inscription : avril 2007
Messages : 18
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 18
Points : 3
Points : 3
Par défaut Somme d'une date extraite de la table et d'une période dans la même table

Bonjour,

Postgresql donne la possibilité de sommer une date et une valeur donnée (month, day, year ...)
Code :
1
2
3
4
 
SELECT champ1 
FROM maTable
WHERE champ1 + interval 'n month'
Le souci c'est que je le nombre de mois n est figé, moi je voudrais que le n soit tiré d'une autre colonne appartenent à maTable aussi.
Un truc du style:
....Where champ1 + (select nbrMois from maTable) month !!!

Merci
moi&dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 11h11   #2
Invité de passage
 
Inscription : avril 2007
Messages : 18
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 18
Points : 3
Points : 3
un tit oubli:

SELECT champ1
FROM maTable
WHERE champ1 + interval 'n month' condition
moi&dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 10h04   #3
Membre actif
 
Avatar de budtucker
 
Développeur multimédia
Inscription : avril 2007
Messages : 175
Détails du profil
Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : avril 2007
Messages : 175
Points : 174
Points : 174
Si possible, tu peux tout faire dans une fonction.

1 - Tu initialises une variable
2 - Tu lui attributs la valeur de ta requête "select nbrMois from maTable"
3 - Tu lances ta seconde requête en utilisant la valeur de ta variable

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
declare 
    nbmois integer;
    resultat record;
 
begin
    SELECT nbrMois INTO nbmois FROM maTable;
 
       FOR resultat IN SELECT champ1 FROM maTable WHERE champ1 + interval nbmois||' month' LOOP
        RETURN NEXT resultat;
       END LOOP;
 
  RETURN;
end;
Je n'ai pas testé, mais pi t'ete que ça fonctionne !!!!

A+
budtucker est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h23.


 
 
 
 
Partenaires

Hébergement Web