← Retour aux leçons Avancé

LEFT JOIN, NULL et COALESCE

Identifier les données manquantes ou incomplètes.

Avancé Syntaxe SQL Cas finance/compta Exercices associés

Objectif

Savoir conserver les lignes sans correspondance et traiter les valeurs NULL dans les calculs.

Contexte de l'exercice

Pour analyser les impayés, il faut conserver les factures même lorsqu'aucun règlement n'existe. Une jointure classique peut faire disparaître ces factures. LEFT JOIN permet de les garder.

Points essentiels

  • LEFT JOIN conserve toutes les lignes de la table de gauche.
  • Si aucune correspondance n'existe, les colonnes de droite valent NULL.
  • COALESCE remplace NULL par une valeur choisie, souvent 0.
  • Cette logique est essentielle pour calculer des restes à payer.
  • Les impayés se calculent souvent en comparant facturé et réglé.

Syntaxe type

SELECT a.colonne, COALESCE(SUM(b.montant), 0) AS total
FROM table_a a
LEFT JOIN table_b b ON a.cle = b.cle
GROUP BY a.colonne;

Exemple appliqué

SELECT f.id_facture,
f.montant_ttc - COALESCE(SUM(r.montant_regle), 0) AS reste_a_payer
FROM factures f
LEFT JOIN reglements r ON f.id_facture = r.id_facture
GROUP BY f.id_facture, f.montant_ttc;

Erreurs fréquentes

  • Utiliser JOIN au lieu de LEFT JOIN pour chercher des éléments non réglés.
  • Oublier COALESCE et obtenir NULL dans un calcul.
  • Faire une différence entre montant_ttc et SUM sans GROUP BY.
  • Filtrer trop tôt avec WHERE au lieu d'utiliser HAVING.

Exercices conseillés