Hello,
Je débute dans MySQL mais je ne trouve pas trop d'infos pour mon problème, tout ce que je trouve est pour afficher les colonnes qui ont des valeurs null mais ça n'est pas ce que je souhaite. Pour résumer : je cherche à classer la somme des ventes, par mois, selon des catégories de produits (7 au total) pour les 12 derniers mois quel que soit le moment de ma requête. Pour cela je dois créer une colonne "mois" et une colonne "total_ventes". Dans l'extraction, j'ai bien mon résultat, mais j'aimerai que pour chaque mois, les 7 catégories soient visibles avec des "null" dans a colonne total_ventes quand il y en a pas.
J'ai l'impression que quand on créé des colonnes, faire un LEFT JOIN ou RIGHT JOIN ne permet pas de faire fonctionner cela.
Je précise que je n'ai pas le droit de modifier la base de données (ajouter des clés primaires/étrangères pour lier des tables), je peux juste créer des tableaux sans aucun lien qui pourront me servir d'extract.
Voici mon code et des captures d'écran si ça peut aider :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT p.productLine, date_format(o.orderDate, "%M") AS mois, SUM(od.quantityOrdered * od.priceEach) as total_ventes FROM products AS p LEFT JOIN orderDetails AS od ON p.productCode = od.productCode LEFT JOIN orders AS o ON od.orderNumber = o.orderNUmber WHERE o.orderDate BETWEEN DATE_ADD(NOW(), INTERVAL - 12 MONTH) AND NOW() GROUP BY p.productLine, MONTH(o.orderDate) ORDER BY o.orderDate DESC;
Résultat obtenu :
Diagramme de la base de données :
Je ne cherche pas forcément la solution toute faite, mais plus le chemin pour y parvenir afin que je me débrouille dans la démarche.
Merci par avance si vous avez des idées !
Partager