obtenir le rapport mensuel

a marqué ce sujet comme résolu.

Bonjour, Voila je rencontre un petit problème avec mes réquêtes sql , je cherche à faire ressortir un Tableau du type : BÉNÉFICE | Chiffre d’affaire | Gain produit | Gain total | Dépenses | CanalSat | Date mais avec les tables suivantes :

https://imgur.com/a/kRD1Ji5

Exemple lorsque je tente d’obtenir le chiffre d’affaire et le montant total des dépenses

SELECT SUM(v.qteVendu * v.prixVente) AS ca, SUM(d.montant) AS montant, MONTH(v.dateVente) AS mois FROM produits AS p 
    JOIN ventes AS v ON p.idProd = v.idProd AND p.idBtq = v.idBtq 
    CROSS JOIN depenses AS d WHERE v.idBtq = 1 
GROUP BY MONTH(v.dateVente)

ça ne donne pas le bon resultat ,quelqu’un pourrait m’aider ? merci d’avance

+0 -0

Cross Join depenses : ok, jointure vers la table depenses, mais sur quelle clé ?

Il manque un : on depenses.xxx= autretable.xxx

Plus généralement, pour bâtir une requête avec des SUM ou des GROUP BY en général, il faut d’abord faire :

SELECT  — Ici, on met au lieu des colonnes qu’on voudra au final FROM …

Il faut mettre les tables, les JOIN, les WHERE … et regarder le résultat. Regarder le nombre de lignes total que la requête renvoie. regarder si ça semble cohérent.

Si ce qu’on obtient ici semble bon, on peut passer à la 2ème étape, remplacer le de SELECT par ce qu’on voulait au début, et ajouter la clause GROUP BY à la fin de la requête.

Cette démarche est valable pour bâtir une requête. Elle est aussi valable pour débugger une requête qui ne fait pas ce qu’on voudrait.

+0 -0
select 
(select sum(c.gain) from canal c) as canalsat ,
(select sum(d.montant) from depenses d) as depenses , 
(select sum(v.qteVendu * v.prixVente) from ventes v) as ca ,
(select SUM(v.qteVendu*(v.prixVente - p.prixAprod)) from ventes v join produits p on p.idProd = v.idVente) as gainp,
from 
boutiques b 
where b.idBtq

je viens d’essayer ça pour l’instant c’est okay mais avec

(gainp + canalsat) as gaintotal

j’obtiens une erreur sql

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte