SQL pour les directions financières

  Par Laurent Davoust   27 juillet 2026   5 min de lecture
SQL Finance

Une direction financière pose chaque semaine des questions simples à ses données :

  • combien chaque magasin a vendu ;
  • quels produits portent le chiffre d'affaires ;
  • quelles références ne se sont pas vendues depuis un mois.

Les réponses sont dans une base de données relationnelle. Les obtenir passe souvent par une équipe technique et par l'attente d'un export.

Le parcours Finance d'entreprise de notre formation SQL sert à se passer de cette attente. Il compte plus de 70 exercices, de niveau débutant à intermédiaire. Chaque énoncé part d'une question métier : un chiffre d'affaires, les livres les plus vendus, les auteurs sans vente.

Une base de ventes facile à lire

Les exercices portent sur les ventes d'un réseau de librairies : cinq magasins répartis dans trois régions, 100 livres, 81 auteurs, 4 570 commandes et 5 543 lignes de vente. Les notions manipulées (commandes, lignes de vente, produits, points de vente, régions) se retrouvent dans la base de n'importe quelle entreprise qui vend quelque chose.

La même base existe en trois versions, qui structurent le parcours.

Schéma des trois versions de la base Finance : en 1NF une table unique de 17 colonnes, en 2NF quatre tables avec des noms encore répétés, en 3NF sept tables reliées par des clés étrangères

Version 1 : une table unique

La première version, Finance 1NF, range tout dans une seule table ventes et compte 33 exercices. Chaque ligne indique l'article vendu, le magasin, la région, l'auteur et le genre, avec des répétitions partout. Les exercices commencent ici : sélection de colonnes, filtres sur les valeurs, les dates, les listes et les chaînes de caractères, tri, limitation du nombre de lignes, puis agrégations avec GROUP BY, DISTINCT et HAVING.

Un exercice type demande la quantité vendue par magasin, du plus gros au plus petit :

SELECT
    magasin_nom,
    SUM(transaction_quantite) AS quantite_totale
FROM ventes
GROUP BY magasin_nom
ORDER BY quantite_totale DESC;

Version 2 : des tables éclatées

La version Finance 2NF découpe la table en partie et compte 7 exercices. Les exercices font d'abord constater ce qui reste redondant : dans la table magasins, le nom de la région se répète à chaque ligne de magasin. Un exercice compte les magasins puis les régions distinctes pour le mesurer. Les premières jointures arrivent ici, entre magasins et commandes, puis en cascade jusqu'aux livres vendus.

Version 3 : le schéma complet

La version Finance 3NF relie sept tables par des clés étrangères : régions, magasins, genres, auteurs, livres, commandes et transactions. Ses 34 exercices en font la partie la plus longue du parcours.

On y enchaîne des jointures internes jusqu'à quatre tables. Pour afficher la date d'une commande, le magasin, le livre et son auteur, il faut partir de transactions et suivre les clés une à une. Les opérateurs EXCEPT et INTERSECT répondent à des questions comme « quels auteurs n'ont eu aucune vente entre le 29 et le 31 décembre 2025 ? ». EXISTS, CASE WHEN, les sous-requêtes et les CTE complètent la boîte à outils.

La CTE du chiffre d'affaires par livre donne une idée du niveau visé :

WITH ventes_par_livre AS (
    SELECT
        livre_id,
        SUM(quantite) AS quantite_totale
    FROM transactions
    GROUP BY livre_id
)
SELECT
    l.nom AS nom_livre,
    COALESCE(v.quantite_totale, 0) AS quantite_totale,
    ROUND(
        COALESCE(v.quantite_totale, 0) * l.prix_unitaire,
        2
    ) AS chiffre_affaires
FROM livres AS l
INNER JOIN ventes_par_livre AS v
    ON l.id = v.livre_id
ORDER BY chiffre_affaires DESC;

Le calcul est écrit en clair : la quantité vendue, multipliée par le prix unitaire, arrondie à deux décimales.

Le parcours montre ensuite comment réutiliser un calcul. Les tables temporaires et les vues le permettent : un exercice crée la vue v_ventes_par_magasin, puis l'interroge pour ne garder que les magasins ayant vendu plus de 50 livres. Les dernières séries portent sur INSERT, UPDATE et DELETE, souvent suivies d'une requête de vérification, et sur les jointures externes. Une anti-jointure permet par exemple de trouver les auteurs qui n'ont jamais écrit de poésie.

Ce que cela change pour une direction financière

Écrire soi-même la requête permet de savoir d'où vient un chiffre : quelle table, quelle jointure, quel filtre de dates. Un responsable qui sait lire une requête peut aussi relire celle d'un collègue ou d'un prestataire et poser les bonnes questions sur le périmètre d'un indicateur.

Le parcours vise l'exploitation des données, pas l'administration d'un serveur de bases de données.

Où pratiquer

Les exercices se font en ligne dans le DOJO, avec une correction automatique et un assistant IA disponible 24h/24.

Ce parcours fait partie de la formation SQL, certifiante (RS7205) et éligible au CPF.

Découvrir la formation SQL

Partager cet article