Page 1 sur 1
Tableau avec résultat mensuel
Posté : 22 août 2021, 16:01
par wagscd
Bonjour à toutes et à tous,
J'ai une page qui liste les jours où il y a eu des opérations et fait un listing, jour par jour avec le total en dollar
Code : Tout sélectionner
$liste_day = $db->getAllRecords('tbl_trades','*, sum(pnl_trade) as PNL_day',' ','group by date_trade order by date_trade DESC');
J'ai la même chose par semaine, mois et année.
Jours, Semaines et Année fonctionnent sans souci mais j'ai un problème avec Mois.
Les données ont commencées en 08/2020, tout allait bien jusque 07/2021.
Il ne m'affiche pas les calculs de 08/2021 (alors que année fonctionne sans souci, j'ai testé 2022, 2023)
Voici mon code.
Avez-vous une idée ou piste concernant ce souci ?
Code : Tout sélectionner
iste_month = $db->getAllRecords('tbl_trades','*, MONTH(date_trade) as Month, YEAR(date_trade) as Year, sum(pnl_trade) as PNL_month',' ','group by Month order by Year DESC, Month DESC');
Merci pour votre aide.
Bonne journée.
Re: Tableau avec résultat mensuel
Posté : 22 août 2021, 16:15
par or 1
cette requête va comptabiliser tous les mois d'aout, celui de 2020 mais aussi celui de 2021. si ce qui est recherché est d'avoir les données d'aout 2020, d'aout 2021, alors il faut ajouter une condition sur l'année dans le where.
Re: Tableau avec résultat mensuel
Posté : 22 août 2021, 16:35
par wagscd
Bonjour or 1,
Merci pour ta réponse.
En fait, j'ai bien 08 / 2020, 09 / 2020 et ainsi de suite juste que 07 / 2021.
Mon souci est que ça ne comptabilise pas 08 / 2021, ni 09 / 2021 (que j'ai testé au cas où)
Merci
Re: Tableau avec résultat mensuel
Posté : 22 août 2021, 16:41
par or 1
ajoute une condition
YEAR(date_trade) = 2020
puis
YEAR(date_trade) = 2021
et verifie d'une autre manière ce qui devrait être retourné.
Re: Tableau avec résultat mensuel
Posté : 23 août 2021, 06:12
par wagscd
Bonjour or 1,
Voilà ce que j'ai à l'origine (résultats effacés pour confidentialité

)
Tout fonctionne parfaitement peu importe la date excepté ici (ça bloque en juillet) .....
J'ai donc fait ceci, suivant tes conseils.
Code : Tout sélectionner
$liste_month = $db->getAllRecords('tbl_trades','*, MONTH(date_trade) as Month, YEAR(date_trade) = 2020 as Year, sum(pnl_trade) as PNL_month',' ','group by Month order by Year DESC, Month DESC');
Et ça donne ceci :
Et avec
Code : Tout sélectionner
$liste_month = $db->getAllRecords('tbl_trades','*, MONTH(date_trade) as Month, YEAR(date_trade) = 2021 as Year, sum(pnl_trade) as PNL_month',' ','group by Month order by Year DESC, Month DESC');
Ca donne ceci :
J'ai pensé à un souci de format de date mais ça devrait me faire des problèmes dans les autres listes, journalier, semaine, année et ce n'est pas le cas.
Merci d'avance pour votre aide et piste.
Re: Tableau avec résultat mensuel
Posté : 23 août 2021, 11:30
par or 1
le where n'est pas à mettre dans ce paramètre de la fonction (qui ne fait tellement rien que ce serait plus clair de ne pas l'utiliser).
une autre solution, à priori, est de faire un group by selon plusieurs critères, l'année et le mois, l'année et le jour ...
Re: Tableau avec résultat mensuel
Posté : 23 août 2021, 13:37
par wagscd
Re bonjour or 1,
Merci pour ta réponse mais en tant que grand débutant et malgré les indications que tu donnes, je ne comprends rien à ce que tu m'indiques
Mais je tente quand même.
J'enlève ceci
Mais après comment faire pour lui faire calculer mois par mois ?
Merci.
Re: Tableau avec résultat mensuel
Posté : 23 août 2021, 14:47
par wagscd
J'avance.
Code : Tout sélectionner
$liste_month = $db->getAllRecords('tbl_trades','*, concat(date_format(date_trade, "%Y-%M")) as formatted_month_date, sum(pnl_trade) as PNL_month',' ','group by formatted_month_date order by formatted_month_date DESC');
J'ai le 08 / 2021 mais par contre, j'arrive pas à le mettre dans le bon ordre ?
De bas en haut
août 2020
septembre 2020
.....
juil.2021
août 2021.
Merci
Re: Tableau avec résultat mensuel
Posté : 23 août 2021, 14:49
par wagscd
Ok j'ai trouvé.
%m et pas %M
Voilà résolu.
Merci or1 pour tes conseils et les pistes.
Bonne journée