Bonjour à tous!
Je voudrais faire juste la somme des recettes et dépenses. Et je souhaiterais que quand l'utilisateur choisis par ex le mois de mai j'obtienne la somme du mois précédent c'est à dire le mois d'avril et affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Mois ¦ solde
04-2017 | 200 000.
S'il choisi la période de décembre 2015 il obtiendra
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Mois | solde
11-2015 | 100 000
Pour cela j'ai utilisé une vue qui m'avais été proposé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
create view `vue` as
      (select  M.mvt_id,
               E.cr_id                              AS Rang,
               date_format(M.mvt_date, "%Y-%m")     AS Periode,
               M.mvt_date,
               R.cr_ref                             AS Reference,
               R.cr_motif                           AS Motif,
               R.cr_Montant                         AS Recette,
               0                                    AS Depense
 
         from  carnetrecette as R
 
   inner join  entree        as E
           on  E.cr_id = R.cr_id
 
   inner join  mouvement     as M
           on  M.mvt_id = E.mvt_id
       having  periode = date_format(M.mvt_date,                    "%Y-%m-%d")
           or  periode = date_format(M.mvt_date,                     "%Y-%m-%d"))
 
union
 
      (select  M.mvt_id,
               S.cd_id                              AS Rang,
               date_format(M.mvt_date, "%Y-%m")     AS Periode,
               M.mvt_date,
               D.cd_ref                             AS Reference,
               D.cd_motif                           AS Motif,
               0                                    AS Recette,
               D.cd_Montant                         AS Depense
 
         from  carnetdepense as D
 
   inner join  sortie        as S
           on  S.cd_id  = D.cd_id
 
   inner join  mouvement     as M
           on  M.mvt_id = S.mvt_id
       having  periode = date_format(M.mvt_date,                    "%Y-%m-%d")
           or  periode = date_format(M.mvt_date,                     "%Y-%m-%d"))
 
     order by  mvt_id, rang
A cette vue j'ai saisi le code de cette procédure stockée avec 2 paramètre de type date (date1 et date2)qui exécutera la vue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Sélect sum (cumul)  
From  ( select  @cum:=@cum + recette -depense  as cumul,  From vue
Cross join (select @cum:=0) as x)  y
Where période between  date1 and  date2
And month(periode)-1
Mais j'obtiens une erreur.
NB j'aimerais le faire avec une procédure stockée.