Bonjour à tous,
Dans l'optique d'alimenter un graphique cumulatif du chiffre d'affaire sur une année entière, j'interroge toutes les ventes et j'additionne ces ventes par jour (c'est la partie easy).
Le souci est le suivant : il n'y a pas de vente tous les jours de l'année, or j'ai besoin de sortir un tableau annuel pour l'interpréter ensuite en graph.
L'idée serait de faire une jointure d'une table calendrier annuelle avec ma table de vente, mais... est-ce vraiment nécessaire de créer une table calendrier en "dur" dans ma base de données ? Dois-je en créer pour chaque nouvelle année ?
Est-ce qu'il existe un moyen de créer plutôt une base de données "virtuelle" temporaire pour le besoin de cette requête spécifique ?
L'idée serait celle-ci : créer une table "virtuelle" du 2021-01-01 au 2021-12-31 et faire une jointure avec la table de mes ventes :
Code de la table des ventes :
Et ensuite j'y associerais cette méthode pour cumuler les données de jour en jour.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT date_jour_annee, total_vente_jour FROM table_virtuelle_annuelle LEFT JOIN ( SELECT (SUM(montant) AS `total_vente_jour`, CONVERT(date, DATE) AS date_jour FROM `vente` GROUP BY YEAR(date), MONTH(date), DAY(date) ) AS table_ventes ON table_ventes.date_jour = table_virtuelle_annuelle.date_jour_annee
J'ai lu quelque chose sur les vues, dois-je passer par cette solution ou fais-je fausse route ?!
Est-ce plus rapide de le faire via MySQL (si toutefois c'est possible) ou boucler via php pour la création d'un tableau annuel + cumuler les données/jour (mais je pense avoir une idée de la réponse) ?!
Merci pour vos retours d'experts qui m'éviteront d'accoucher d'une montagne ^^
Partager