Data Analyst

Calculer un chiffre d’affaires et une marge en SQL

Un chiffre d’affaires élevé ne garantit pas une marge élevée : les deux indicateurs doivent être définis séparément.

Équipe SQL.tn11 min
Des lignes de commandes produisent deux indicateurs distincts de ventes et de marge

Quelle mesure appartient à quelle table ?

Le statut appartient à la commande, le prix vendu et la quantité à la ligne, et le coût de référence au produit. La requête doit réunir ces grains sans additionner une mesure répétée.

Dans ce cas pédagogique, chiffre d’affaires = quantité × prix unitaire et marge brute = quantité × (prix unitaire − coût). Une entreprise réelle doit préciser taxes, remises, retours et méthode de coût.

Les noms, montants et données utilisés dans cet article sont fictifs et créés pour l’apprentissage.

La requête expliquée

Commencez par définir ce que doit représenter une ligne du résultat. Cette décision détermine les colonnes, les regroupements et les contrôles nécessaires.

L’exemple suivant isole le mécanisme principal. Exécutez-le, observez le résultat, puis modifiez une seule clause à la fois pour comprendre son effet.

Marge brute par catégorie
SELECT p.categorie,
  SUM(l.quantite * l.prix_unitaire) AS chiffre_affaires,
  SUM(l.quantite * (l.prix_unitaire - p.cout)) AS marge
FROM commandes c
JOIN lignes_commandes l ON l.id_commande = c.id_commande
JOIN produits p ON p.id_produit = l.id_produit
WHERE c.statut = 'Payée'
GROUP BY p.categorie
ORDER BY marge DESC;

Lire le résultat comme un analyste

Le filtre exclut les commandes non confirmées avant le calcul. Chaque ligne payée contribue selon sa quantité, son prix et son coût.

Présentez toujours montant et taux de marge ensemble : une petite catégorie peut avoir un excellent pourcentage mais une contribution absolue limitée.

  • Documenter la formule et l’unité.
  • Contrôler le statut inclus.
  • Réconcilier le CA avec les lignes.
  • Comparer marge absolue et taux de marge.

Les erreurs qui faussent l’analyse

Une requête peut être valide sans répondre correctement à la question. Les erreurs les plus coûteuses sont souvent silencieuses : mauvais périmètre, ligne multipliée ou valeur absente interprétée comme zéro.

Avant de partager le résultat, confrontez-le à un petit échantillon calculé à la main et conservez la définition du périmètre avec la requête.

  • Confondre chiffre d’affaires et encaissement.
  • Oublier retours ou remises du périmètre réel.
  • Sommer un montant commande répété après JOIN.
  • Diviser par zéro dans le taux de marge.

Passez à la pratique

Terminez l’exercice de marge par catégorie, puis expliquez en deux phrases pourquoi le classement métier peut différer du classement par ventes.

Le simulateur SQL de SQL.tn exécute uniquement des requêtes de lecture sur des données fictives dans votre navigateur. Vous pouvez essayer plusieurs écritures et comparer leur résultat sans installer de logiciel.

Mettez ce guide en pratique.

Ouvrez l’exercice associé, exécutez votre requête et comparez le résultat attendu.

Faire l’exercice