Bonjour,

Merci beaucoup pour votre aide.
J'ai deux table :
La table table1 avec 3 colonnes user, date, budget.

-- Table1 --
U | date | Budget
1 | 01/01/17 | 100
2 | 01/01/17 | 110
3 | 01/01/17 | 101
2 | 15/02/17 | 111
2 | 03/03/17 | 109
3 | 07/06/17 | 102

La table2 avec trois colonnes user, date depense

-- Table2 --
U | date | depense
1 | 04/01/17 | 100
2 | 06/01/17 | 150
1 | 24/02/17 | 130
2 | 20/03/17 | 110
1 | 14/07/17 | 170
3 | 16/08/17 | 180

je souhaiterai avoir la table 2 avec une colonne du budget aloue (< ou = a la date de depense) en fonction des users.


resultat souhaite:

-- resultat --
U | date | depense | budget
1 | 01/17 | 100 | 100
2 | 01/17 | 150 | 110
1 | 02/17 | 130 | 100
2 | 03/17 | 110 | 109
1 | 07/17 | 170 | 100
3 | 08/17 | 180 | 102

je n'y arrive pas, ma formule ne fonctionne pas:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
SELECT 
  to_char((table2.date) ::timestamp with time zone, 'MM/YYYY' ::text) AS date,
  table2.depense,
  table2.user,
  table1.budget
FROM
  table1
  INNER JOIN table2 ON (public.table1.user = table2.user)
GROUP BY
  to_char((table2.date) ::timestamp with time zone, 'MM/YYYY' ::text),
  table2.user,
  table1.budget