Vous n'êtes pas identifié(e).
Slt à tous,
SVP, Voilà mon problème par rapport au calcul de variation donc je signal depuis un certain temps et jusqu'ici sans reponse
la formule est la suivante: ca(2016)-ca(2015)/ca(2015)
Voila ma table "TableTest" avec les champ: ID,d_date,ca
INSERT INTO public."TableTest" VALUES (1,'01-01-2015',150000);
INSERT INTO public."TableTest" VALUES (2,'01-02-2015',300000);
INSERT INTO public."TableTest" VALUES (3,'02-02-2015',500000);
INSERT INTO public."TableTest" VALUES (4,'05-01-2016',180000);
INSERT INTO public."TableTest" VALUES (5,'10-01-2016',220000);
INSERT INTO public."TableTest" VALUES (6,'23-03-2015',455000);
INSERT INTO public."TableTest" VALUES (7,'25-03-2015',390000);
INSERT INTO public."TableTest" VALUES (8,'05-02-2016',250000);
INSERT INTO public."TableTest" VALUES (9,'07-03-2016',400000);
Ma requête de selection
SELECT T.nummois,T.mois,T.annee,ca,
(((FIRST_VALUE(T.ca) OVER (PARTITION BY T.nummois)-LAST_VALUE(T.ca) OVER (PARTITION BY T.nummois))/LAST_VALUE(T.ca) OVER (PARTITION BY T.nummois))* 100)as variation
FROM
(
SELECT to_char(d_date,'MM')as nummois, to_char(d_date, 'month') as mois, extract(year from d_date) as annee,sum(ca) as ca
FROM public."TableTest"
GROUP BY nummois,mois,annee
ORDER BY nummois asc
)T
RESULTAT
nummois mois annee ca variation
01 january 2016 400000 166.666662693024
01 january 2015 150000 166.666662693024
02 february 2016 250000 -68.75
02 february 2015 800000 -68.75
03 march 2016 400000 -52.6627242565155
03 march 2015 845000 -52.6627242565155
Là tout semble correct!!!
Mais quant j'insère les données du mois d'avril pour la suite par exemple et que j'exécute à nouveau la requête, mes résultats ne sont plus correct. ??????
INSERT INTO public."TableTest" VALUES (10,'14-04-2016',500000);
INSERT INTO public."TableTest" VALUES (11,'15-04-2016',470000);
INSERT INTO public."TableTest" VALUES (12,'08-04-2015',400000);
RESULTAT:
nummois mois annee ca variation
01 january 2016 400000 166.666662693024
01 january 2015 150000 166.666662693024
02 february 2015 800000 220.000004768372
02 february 2016 250000 220.000004768372
03 march 2015 845000 111.249995231628
03 march 2016 400000 111.249995231628
04 april 2015 400000 -58.7628841400146
04 april 2016 970000 -58.7628841400146
SVP y'a t-il une autre technique pour que je puisse calculer la variation ???????
Comment je peux faire afin de recupérer dans mon code sql pour chaque "Mois", la valeur du "CA" pour l'année en cour (2016) et l'année précedente (2015) ????? svp!!!
Cette technique donc j'utilise semble ne pas être stable!!!!
NB: j'utilise PostgreSQL 9.4
Merci de me venir en aide SVP pour que je puisse avancer!!!!
Dernière modification par Douk V5 (13/05/2016 13:23:41)
Hors ligne
Bonjour,
Quelle est la requête que vous avez effectuée, et quelle était l'erreur rencontrée ?
Julien.
https://rjuju.github.io/
Hors ligne
Bonjour,
Quelle est la requête que vous avez effectuée, et quelle était l'erreur rencontrée ?
Slt rjuju,
SVP, Voilà mon problème par rapport au calcul de variation donc je signal depuis un certain temps et jusqu'ici sans reponse
la formule est la suivante: ca(2016)-ca(2015)/ca(2015)
Voila ma table "TableTest" avec les champ: ID,d_date,ca
INSERT INTO public."TableTest" VALUES (1,'01-01-2015',150000);
INSERT INTO public."TableTest" VALUES (2,'01-02-2015',300000);
INSERT INTO public."TableTest" VALUES (3,'02-02-2015',500000);
INSERT INTO public."TableTest" VALUES (4,'05-01-2016',180000);
INSERT INTO public."TableTest" VALUES (5,'10-01-2016',220000);
INSERT INTO public."TableTest" VALUES (6,'23-03-2015',455000);
INSERT INTO public."TableTest" VALUES (7,'25-03-2015',390000);
INSERT INTO public."TableTest" VALUES (8,'05-02-2016',250000);
INSERT INTO public."TableTest" VALUES (9,'07-03-2016',400000);
Ma requête de selection
SELECT T.nummois,T.mois,T.annee,ca,
(((FIRST_VALUE(T.ca) OVER (PARTITION BY T.nummois)-LAST_VALUE(T.ca) OVER (PARTITION BY T.nummois))/LAST_VALUE(T.ca) OVER (PARTITION BY T.nummois))* 100)as variation
FROM
(
SELECT to_char(d_date,'MM')as nummois, to_char(d_date, 'month') as mois, extract(year from d_date) as annee,sum(ca) as ca
FROM public."TableTest"
GROUP BY nummois,mois,annee
ORDER BY nummois asc
)T
RESULTAT
nummois mois annee ca variation
01 january 2016 400000 166.666662693024
01 january 2015 150000 166.666662693024
02 february 2016 250000 -68.75
02 february 2015 800000 -68.75
03 march 2016 400000 -52.6627242565155
03 march 2015 845000 -52.6627242565155
Là tout semble correct!!!
Mais quant j'insère les données du mois d'avril pour la suite par exemple et que j'exécute à nouveau la requête, mes résultats ne sont plus correct. ??????
INSERT INTO public."TableTest" VALUES (10,'14-04-2016',500000);
INSERT INTO public."TableTest" VALUES (11,'15-04-2016',470000);
INSERT INTO public."TableTest" VALUES (12,'08-04-2015',400000);
RESULTAT:
nummois mois annee ca variation
01 january 2016 400000 166.666662693024
01 january 2015 150000 166.666662693024
02 february 2015 800000 220.000004768372
02 february 2016 250000 220.000004768372
03 march 2015 845000 111.249995231628
03 march 2016 400000 111.249995231628
04 april 2015 400000 -58.7628841400146
04 april 2016 970000 -58.7628841400146
SVP y'a t-il une autre technique pour que je puisse calculer la variation ???????
Comment je peux faire afin de recupérer dans mon code sql pour chaque "Mois", la valeur du "CA" pour l'année en cour (2016) et l'année précedente (2015) ????? svp!!!
Cette technique donc j'utilise semble ne pas être stable!!!!
NB: j'utilise PostgreSQL 9.4
Merci de me venir en aide SVP pour que je puisse avancer!!!!
Hors ligne
Je ne comprends absolument pas vos données. Pour ma part, si vous voulez de l'aide il faudrait préciser la définition de la table, le sens de chaque colonne ainsi que comment doit se calculer le CA annuel.
Julien.
https://rjuju.github.io/
Hors ligne
Slt rjuju
Dans mon exercice le plus important pour moi c'est la manipulation des dates, le calcul du Chiffre d'affaire(CA) et le calcul de la variation ou je suis buté.
Je somme les ventes réalisé au cours d'une année (pour 2016 par exemple), ce qui constitue mon CA et puis celles de l'année précédente (pour 2015).
Je fais ensuiteje fait un regroupement sur les différents mois de l'année (les 12 mois).
Et puis calculer les variations sur chaque mois des 2 année.
d_date = date d'enregistrement des ventes
ca = en fait CA ici est la somme des montant_TTC
Jusqu'ici, en observant le résultat de ma requête, je cherche comment je peux pour un mois donné récupérer le CA de l'année 2016 et puis celui de 2015 pour le calcul de la variation qui est basé sur la formule suivante:
CA de 2016 - CA de 2015 / CA de 2015
j'espère que c'est plus explicite.
voilà un point qui me bloque térriblement, si quelqu'un peut m'aider.
Merci pour le temps que tu mets pour essayer de me comprendre.
Hors ligne