DCG · UE 8 · Atelier corrigé

Atelier SQL — Filtrer et regrouper les factures

Couverture de l’UE : Première version : chaque rubrique du sommaire dispose d’un cours de méthode. La couverture reste partielle : approfondissements encore nécessaires en normalisation, fonctions de tableur, programmation VBA exécutée dans Excel, diagrammes BPMN complets et cas transversaux. Les exercices SQL sont contrôlés sur un jeu d’essai SQLite ; les particularités d’autres SGBD et tableurs doivent être vérifiées.

Objectif : Appliquer la méthode et expliquer ses contrôles.

Données du cas

Les exercices SQL utilisent les données fictives suivantes : Client : (1, Alma), (2, Boréal), (3, Cyprès). Facture : (10, client 1, 600), (11, client 1, −100), (12, client 2, 300), (13, client 2, 250), (14, client 1, NULL). Les montants sont en euros. NULL désigne ici un montant non encore renseigné ; Cyprès n’a aucune facture.

Démarche

Définissez le résultat attendu avant de choisir la formule ou la requête. Contrôlez les valeurs manquantes, les limites et le périmètre. Comparez votre réponse au corrigé en distinguant calcul, interprétation et conditions d’exécution.

Exercice

Écrivez une requête donnant les clients dont la somme des seules factures positives dépasse 500 €. Donnez le résultat, trié par identifiant. Comparez au total net des montants connus.

Afficher le corrigé expliqué

SELECT id_client, SUM(montant) AS total FROM Facture WHERE montant > 0 GROUP BY id_client HAVING SUM(montant) > 500 ORDER BY id_client; Résultat : client 1 = 600 ; client 2 = 550. Le total net des montants connus est 600 − 100 + 300 + 250 = 1 050 €. Le total des factures positives vaut 1 150 €. Ces deux totaux répondent à des questions différentes. NULL n’est pas interprété comme une facture de montant zéro.

Question de validation

Le total des seules valeurs positives vaut :

  1. 1 050 €
  2. 1 150 €
  3. 950 €
Vérifier la réponse

Réponse B : 1 150 €

Les montants strictement positifs sont 600, 300 et 250 : leur somme vaut 1 150 €. L’avoir de −100 est exclu par WHERE montant > 0.

Sources complémentaires

Repères théoriques ; exemples et exercices originaux.

Référentiel

Annexe officielle DCG · Bulletin officiel

Ouvrir ce cours dans l’espace interactif →