Que saurez-vous faire à la fin de la formation, et où s'arrête-t-elle ?
La plupart des analyses de gestion commencent par un export : on sort les factures d'Odoo, les commandes de Dolibarr ou les mouvements de stock de l'application métier, puis on les recolle dans un classeur. Le tableur fait très bien son travail sur ce qu'on lui donne. Le problème est en amont : chaque export fige une vue choisie par l'éditeur, il faut en croiser trois pour répondre à une question simple, et l'opération se refait à la main chaque mois. Cette formation commence là où le tableur s'arrête, en allant chercher la donnée à sa source.
À la fin des trois jours, chaque participant sait faire seul six choses vérifiables. Se connecter à une copie de la base avec un compte de lecture et retrouver une pièce qu'il connaît. Filtrer et trier sans perdre de lignes à cause d'une date ou d'une valeur manquante. Regrouper et additionner par période, par client ou par produit. Relier plusieurs tables sans gonfler les totaux. Calculer un cumul, un classement ou une évolution d'un mois sur l'autre avec une fonction de fenêtre. Enfin, rapprocher chaque résultat d'un total connu avant de le transmettre.
La formation n'enseigne aucune commande d'écriture. INSERT, UPDATE, DELETE, la création de tables ou l'administration d'un serveur restent hors du programme, et le compte utilisé pendant les séances ne permet pas de les exécuter. Les formules et les tableaux croisés sont l'objet de la formation Excel et Google Sheets, utile à suivre avant si le tableur reste fragile. Les tableaux de bord construits dans Power BI ou Looker Studio, et la lecture critique des indicateurs pour décider, ont chacun leur fiche dans le catalogue, reliée en bas de page.
Elle ne forme pas non plus des développeurs. Écrire le SQL d'une application, avec ses tables, ses migrations et ses contrôles d'accès, relève du parcours de la formation au développement web et des fiches qui le prolongent. Ici, le public est celui qui pose les questions sur l'activité de l'entreprise et qui veut y répondre lui-même, en lecture, sans attendre qu'un prestataire ajoute un rapport au logiciel. La place de cette formation parmi les autres est expliquée sur la page formations en développement.
Quelles requêtes chaque participant doit-il savoir écrire seul à la fin ?
- Retrouver une facture précise et toutes ses lignes à partir de son numéro, avec les montants hors taxes et toutes taxes comprises.
- Lister les factures échues et non soldées à une date donnée, sans oublier celles dont l'échéance tombe le dernier jour du mois.
- Calculer un chiffre d'affaires par mois et par commercial qui concorde avec le total affiché par le logiciel.
- Joindre clients, factures, lignes et produits en vérifiant que le nombre de lignes et le total n'ont pas bougé.
- Trouver les clients sans commande depuis six mois et les produits sans aucune vente sur l'exercice.
- Classer les produits de chaque agence et isoler les trois premiers avec ROW_NUMBER ou RANK.
- Calculer un cumul annuel et une variation d'un mois sur l'autre avec SUM() OVER et LAG.
- Découper une analyse en étapes nommées avec la clause WITH, chacune commentée.
- Exporter un résultat en CSV lisible dans Excel en français, dates et montants compris.
- Expliquer, pour chacune de ses requêtes, quel total de contrôle prouve qu'elle est juste.
À qui s'adresse la formation, avec quel niveau et quel accès aux données ?
Le public se reconnaît à une habitude : passer chaque mois des heures à recoller des exports pour obtenir un chiffre que la base contient déjà. Un test de positionnement d'un quart d'heure, avant le devis, vérifie la pratique du tableur et la connaissance des données du poste ; il sert à composer les groupes, pas à écarter quelqu'un.
-
Contrôle de gestion et finance
Balance âgée des clients, marges par produit ou par affaire, écarts entre budget et réalisé, préparation des chiffres de clôture. Ce sont les participants qui gagnent le plus de temps, parce que leurs questions croisent presque toujours plusieurs écrans du logiciel.
-
Comptabilité
Rapprocher les ventes facturées des écritures, retrouver les pièces en brouillon oubliées, contrôler les avoirs et les factures sans règlement. Les usages propres à la comptabilité OHADA dans Odoo relèvent de la formation Odoo comptabilité SYSCOHADA.
-
Commerce et administration des ventes
Clients dormants, panier moyen, chiffre d'affaires par commercial, par zone ou par famille de produits, devis non transformés. Le responsable commercial cesse d'attendre l'export du lundi pour savoir où en est le mois.
-
Achats, stock et logistique
Ruptures répétées, articles sans mouvement, délais réels des fournisseurs, écarts entre commandé, reçu et facturé. Ces questions mobilisent beaucoup de tables, et c'est là que les fonctions de fenêtre rendent le plus service.
-
Responsables informatiques et référents du logiciel
Ils ne suivent pas forcément toute la formation, mais participent à la préparation : création du compte de lecture, restauration de la copie, limite de durée des requêtes. Une heure avec eux avant la session évite de perdre la première matinée.
-
Niveau et prérequis
Aucune notion de programmation. Il faut être à l'aise avec un tableur, filtres et tableaux croisés compris, et connaître les opérations de son propre poste : savoir ce qu'est une facture validée ou un bon de livraison dans son logiciel compte davantage que n'importe quel diplôme.
-
Matériel et accès
Un ordinateur portable avec droits d'installation, ou DBeaver déjà installé par le service informatique. En intra, un accès en lecture seule à une copie récente de la base ; à défaut, ou en inter, la base d'exercice fournie, qui reproduit les tables d'un logiciel de gestion avec des données fictives.
Quel est le programme, demi-journée par demi-journée ?
Jour 1, matin : du fichier exporté à la base, avec un accès qui ne peut rien casser3 h 30
- Une facture réelle dessinée au tableau, puis retrouvée dans la base : tables, lignes, colonnes, identifiant unique et référence vers une autre table.
- Poste vérifié : DBeaver Community installé, connexion à la base d'exercice SQLite fournie, puis à la copie de votre base avec un compte limité à la lecture.
- Démonstration volontaire : une modification tentée avec ce compte, refusée par le serveur. C'est la seule protection qui compte vraiment.
- Premiers SELECT : choisir ses colonnes, les renommer avec AS, n'afficher que les cent premières lignes pendant qu'on explore.
- Exercice : retrouver dans la base, ligne par ligne, une facture que l'on tient sur papier, montant hors taxes et taxes compris.
Jour 1, après-midi : filtrer, trier, et apprivoiser les valeurs manquantes3 h 30
- La clause WHERE : égalités, comparaisons, BETWEEN, IN, LIKE, et les parenthèses indispensables dès que AND et OR se mélangent.
- NULL, qui n'est égal à rien, pas même à lui-même : IS NULL, IS NOT NULL, et COALESCE pour afficher zéro au lieu d'une case vide.
- Filtrer un mois entier quand la colonne contient aussi l'heure, sans perdre les opérations du dernier jour après minuit.
- ORDER BY sur plusieurs colonnes, DISTINCT, et ce qu'un DISTINCT posé par réflexe peut cacher.
- Exercice : les factures clients échues et non soldées à la fin du mois, triées du plus ancien retard au plus récent.
Jour 2, matin : compter, additionner et regrouper sans se tromper de question3 h 30
- COUNT(*), COUNT(colonne) et COUNT(DISTINCT colonne) : trois nombres différents, qui répondent à trois questions différentes.
- SUM, AVG, MIN, MAX, puis GROUP BY ; HAVING pour filtrer après le regroupement, WHERE pour filtrer avant.
- CASE WHEN pour ranger en classes : tranches de montant, retards de 0 à 30, de 31 à 60 et de plus de 60 jours.
- Division entière et arrondis : dans PostgreSQL et SQLite, 5 divisé par 2 donne 2 si les deux nombres sont entiers ; le taux de marge en dépend.
- Exercice : le chiffre d'affaires par mois et par commercial, rapproché du total que le logiciel affiche pour la même période.
Jour 2, après-midi : relier les tables sans fabriquer de faux totaux3 h 30
- INNER JOIN et LEFT JOIN entre clients, factures, lignes de facture et produits ; lire un schéma pour savoir par quelle colonne relier.
- La jointure qui multiplie : un montant d'en-tête recopié sur chaque ligne de détail, et le total gonflé qui en résulte sans aucun message d'erreur.
- Chercher ce qui manque : clients sans commande depuis six mois, produits jamais vendus, paiements sans facture rattachée.
- Le réflexe de contrôle : compter les lignes avant et après chaque jointure, et expliquer toute différence.
- Exercice : la marge par famille de produits, dont le total doit retomber sur celui de la comptabilité.
Jour 3, matin : sous-requêtes, clause WITH et requêtes qu'un collègue peut relire3 h 30
- Sous-requêtes dans WHERE et dans FROM, EXISTS et NOT EXISTS, et le moment où elles rendent une requête illisible.
- La clause WITH, ou expression de table commune : découper une analyse en étapes nommées, chacune vérifiable seule.
- Regrouper par mois selon le moteur : date_trunc dans PostgreSQL, DATE_FORMAT dans MySQL et MariaDB, strftime dans SQLite.
- Mise en page, commentaires et en-tête de chaque requête : question posée, auteur, date, tables utilisées, total de contrôle attendu.
- Exercice : réécrire en trois étapes nommées une requête de quarante lignes héritée d'un ancien collègue, sans changer son résultat.
Jour 3, après-midi : fonctions de fenêtre, export du résultat et évaluation3 h 30
- ROW_NUMBER et RANK avec PARTITION BY : les trois meilleurs produits de chaque agence, la dernière commande de chaque client.
- SUM() OVER : cumul depuis le début de l'exercice, part de chaque client dans le chiffre d'affaires total, sans perdre le détail des lignes.
- LAG pour comparer un mois au précédent, et une moyenne mobile sur trois mois pour lisser une activité saisonnière.
- Exporter en CSV pour Excel en français : séparateur, encodage des accents, format des dates et des montants.
- Évaluation : trois questions réelles de la direction traitées seul, chacune avec sa requête commentée et son total de contrôle.
Demi-journée optionnelle : le schéma de votre logiciel, Odoo ou Dolibarr3 h 30
- Odoo : du nom technique d'un modèle au nom de sa table (sale.order devient sale_order), colonnes ajoutées d'office, mode développeur pour retrouver un champ vu à l'écran.
- Dolibarr : préfixe llx_, factures clients dans llx_facture et leurs lignes dans llx_facturedet, codes de statut et de type documentés par le projet.
- Les pièges communs aux deux : brouillons et pièces annulées, plusieurs sociétés dans une même base, montants en devise et en monnaie de la société, avoirs.
- Constitution de la bibliothèque de requêtes de l'équipe, chacune validée contre un état ou un rapport du logiciel.
Comment l'accès aux données est-il préparé avant la première séance ?
-
Recueillir les vraies questions
Au premier échange, puis 30 minutes par participant
Chaque participant écrit trois questions qu'il pose chaque mois à ses données, avec le chiffre qu'il obtient aujourd'hui et le temps qu'il y passe. Ces questions deviennent les exercices du troisième jour et l'évaluation finale. Une question qu'aucune table ne permet de traiter est repérée à ce moment, pas en séance.
-
Choisir la source
Une à deux semaines avant
Trois cas se présentent : une copie restaurée de la base sur un serveur de travail, une réplique en lecture tenue par le service informatique, ou la base d'exercice fournie quand aucune copie n'est possible. La production elle-même n'est jamais utilisée, même pour une requête rapide.
-
Créer un compte qui ne sait que lire
Une heure avec le référent technique
Sous PostgreSQL, un rôle qui ne reçoit que des droits SELECT, ou le rôle prédéfini pg_read_all_data ; sous MySQL ou MariaDB, un utilisateur limité à SELECT sur la base concernée. Le mot de passe est propre à chaque participant et ne figure dans aucun fichier partagé.
-
Poser une limite de durée
Pendant le même rendez-vous
Une requête mal jointe peut tourner des minutes entières. Sous PostgreSQL, le paramètre statement_timeout l'arrête au-delà d'un délai fixé pour le compte ; sous MySQL, la variable max_execution_time ou l'indication MAX_EXECUTION_TIME limite la durée d'un SELECT. Le serveur de travail reste ainsi disponible pour tout le groupe.
-
Réduire les données personnelles
Avant la restauration de la copie
Les colonnes qui ne servent à aucune question (téléphones, adresses, notes libres, salaires) sont vidées ou remplacées par des valeurs fictives sur la copie. On garde les montants, les dates, les statuts et les liens entre tables, qui suffisent à toutes les analyses de gestion.
-
Tester le refus d'écriture
La veille de la session
Une modification est tentée avec le compte de chaque participant et doit échouer, avec un message d'erreur de droits. Ce test est refait en séance devant le groupe : il rassure les participants, qui osent ensuite explorer, et la direction, qui sait que rien ne peut être abîmé.
Sur quelles questions de métier les exercices portent-ils ?
| Métier | Question posée | Notions SQL mobilisées | Contrôle de fin d'exercice |
|---|---|---|---|
| Finance | Quelle est la balance âgée des clients au dernier jour du mois, par tranche de retard ? | Filtres de dates, CASE WHEN, SUM et GROUP BY | Le total des tranches égale le solde clients de la comptabilité à la même date. |
| Contrôle de gestion | Quelle marge chaque famille de produits a-t-elle dégagée par trimestre ? | Jointures entre lignes de facture et produits, regroupement par période | La somme des familles égale la marge totale ; aucune ligne sans famille. |
| Comptabilité | Quelles pièces sont restées en brouillon, et quelles factures n'ont aucun règlement rattaché ? | LEFT JOIN, IS NULL, filtres sur les statuts | Le nombre de brouillons concorde avec le filtre équivalent dans le logiciel. |
| Commerce | Quels clients actifs l'an dernier n'ont rien commandé depuis six mois ? | Sous-requête ou NOT EXISTS, MAX sur les dates | Trois clients tirés au hasard dans la liste sont vérifiés dans leur fiche. |
| Administration des ventes | Combien de devis sont transformés en commande, par commercial et par mois ? | COUNT(DISTINCT), CASE WHEN, regroupement | Le nombre total de devis égale celui du logiciel sur la période. |
| Logistique | Quels articles ont connu plus de trois ruptures sur le semestre ? | Mouvements de stock, cumul avec SUM() OVER, comptage conditionnel | Le stock calculé d'un article témoin égale celui affiché par le logiciel. |
| Achats | Quel est le délai réel de chaque fournisseur entre la commande et la réception ? | Jointure commande et réception, différence de dates, AVG et classement | Les délais extrêmes sont vérifiés sur les pièces d'origine. |
Comment les séances se déroulent-elles, et que garde l'équipe ensuite ?
Le principe est constant : la question de métier vient d'abord, la syntaxe ensuite, et aucun résultat n'est accepté tant qu'il n'a pas été rapproché d'un chiffre connu.
-
Huit participants au plus
Une erreur de jointure ne se voit pas à l'écran : le résultat a l'air plausible. Pour la repérer à temps, le formateur doit relire la requête de chacun, ce qui n'est possible qu'en petit groupe.
-
Une requête, un total de contrôle
Chaque exercice impose d'écrire, avant la requête, le chiffre auquel elle doit aboutir et l'endroit du logiciel où on le lit. Ce réflexe vaut plus que n'importe quelle fonction avancée.
-
Lire avant d'écrire
Avant toute analyse, on regarde les vingt premières lignes de chaque table utilisée, ses valeurs de statut et ses colonnes de dates. Beaucoup d'erreurs viennent d'une table mal comprise, très peu d'une syntaxe mal écrite.
-
Sur vos données, ou presque
En intra, les exercices tournent sur la copie de votre base, avec les questions recueillies au cadrage. En inter, chacun travaille sur la base d'exercice, et peut apporter la description de ses propres tables pour la dernière demi-journée.
-
Une bibliothèque de requêtes partagée
Les requêtes validées sont rangées dans un dossier commun, chacune avec son en-tête : question, auteur, date, tables, total de contrôle. L'équipe repart avec un outil de travail, pas seulement avec des notes.
-
Supports remis
Un aide-mémoire de la syntaxe de lecture, une fiche des différences entre PostgreSQL, MySQL, MariaDB et SQLite, la description commentée des tables utiles de votre logiciel, les exercices et leurs corrigés, dans un format modifiable.
-
Évaluation et suivi
L'évaluation porte sur trois questions réelles traitées seul. Une attestation de fin de formation est remise à chaque participant. Selon le devis, une période de questions d'application et une relecture de quelques requêtes écrites après la session peuvent suivre.
Avec quels outils et quelles versions, et combien coûtent-ils ?
| Outil | Rôle dans la formation | Version relevée | Coût d'éditeur |
|---|---|---|---|
| DBeaver Community | Client de requêtes principal : un seul outil pour PostgreSQL, MySQL, MariaDB et SQLite | 26.2.1, publiée le 21 septembre 2026 | Gratuit et open source ; DBeaver PRO en option : Lite 113 dollars, Enterprise 255 dollars, Ultimate 510 dollars par an, essai de 14 jours |
| pgAdmin 4 | Alternative pour les équipes qui ne travaillent que sur PostgreSQL, donc sur Odoo | 9.18, publiée le 17 septembre 2026 | Gratuit, sous licence PostgreSQL |
| MySQL Workbench | Alternative pour les équipes dont la base tourne sous MySQL | Version GA proposée au téléchargement le 5 octobre 2026 | Édition communautaire gratuite |
| DB Browser for SQLite | Ouvrir la base d'exercice sans aucun serveur, y compris hors connexion | 3.13 | Gratuit et open source |
| PostgreSQL | Moteur d'Odoo, et de certains Dolibarr | 18.6, version majeure 18 sortie le 25 septembre 2025 | Gratuit |
| MySQL ou MariaDB | Moteurs les plus fréquents sous Dolibarr et sous les applications PHP | Celle de votre serveur ; les fonctions de fenêtre exigent MySQL 8.0 ou MariaDB 10.2 au moins | Éditions communautaires gratuites |
| SQLite | Moteur de la base d'exercice : un seul fichier, aucune installation de serveur | 3.53.4, publiée le 24 juillet 2026 | Domaine public, gratuit |
| Odoo | Source des données quand l'entreprise l'utilise | Odoo 20.0, dernière version | Formule Standard réservée à Odoo Online ; Odoo.sh et l'hébergement sur site demandent la formule Personnalisé, à partir de 35,90 euros par utilisateur et par mois en paiement annuel la première année, hébergement Odoo.sh en sus |
PostgreSQL, MySQL, MariaDB ou SQLite : qu'est-ce qui change pour un analyste ?
| Point | PostgreSQL | MySQL | MariaDB | SQLite |
|---|---|---|---|---|
| Fonctions de fenêtre et clause WITH | Disponibles | Depuis MySQL 8.0 ; absentes de MySQL 5.7 | Depuis MariaDB 10.2 | Depuis la version 3.25.0 du 15 septembre 2018 |
| Division de deux entiers | Tronquée : 5 / 2 donne 2 | Résultat décimal : 5 / 2 donne 2,5 ; DIV pour la division entière | Résultat décimal, quatre chiffres après la virgule par défaut | Tronquée vers zéro, comme PostgreSQL |
| Division par zéro | Erreur division_by_zero, la requête s'arrête | Résultat NULL, sans erreur visible | Résultat NULL, avec un simple avertissement | Résultat NULL |
| Regrouper par mois | date_trunc('month', date) | DATE_FORMAT(date, '%Y-%m') | DATE_FORMAT, comme MySQL | strftime('%Y-%m', date) |
| Limiter la durée d'une requête | Paramètre statement_timeout | Variable max_execution_time ou indication MAX_EXECUTION_TIME, pour les SELECT | Variable max_statement_time | Sans objet : base locale, sur le poste |
| Accès en lecture seule | Droits SELECT, ou rôle pg_read_all_data | Utilisateur limité à SELECT | Utilisateur limité à SELECT | Ouverture du fichier en mode lecture seule (mode=ro) |
Où se trouvent les données d'Odoo et de Dolibarr, et comment les atteindre sans risque ?
Odoo repose sur PostgreSQL. La documentation d'installation d'Odoo 20.0 l'écrit en toutes lettres et précise que la version 20 a relevé le minimum de PostgreSQL 13 à PostgreSQL 16. Chaque modèle technique y devient une table : le tutoriel officiel montre que le modèle estate.property produit la table estate_property, avec des colonnes de création et de modification ajoutées d'office. Le mode développeur, que la documentation présente comme l'accès à des outils pour comprendre les données techniques d'une vue, sert à relier un champ vu à l'écran à sa colonne.
L'accès dépend de l'hébergement. Le gestionnaire de bases d'Odoo Online propose de dupliquer une base pour des tests, copie qui expire au bout de 15 jours, cinq au plus par base, ou de télécharger une sauvegarde au format ZIP ; aucune de ses actions n'ouvre de console SQL. Le chemin pratique consiste donc à restaurer cette sauvegarde sur un serveur PostgreSQL de travail. Sur Odoo.sh, l'onglet Shell permet d'ouvrir psql, et la documentation affiche en rouge les shells de production pour rappeler le danger de les manipuler directement : on travaille sur la base de préproduction.
Dolibarr laisse plus de choix. Sa page de prérequis, modifiée le 2 décembre 2025, accepte MySQL 5.7.7 et plus, MariaDB 10.3 et plus, et PostgreSQL 9.1 et plus. Le détail compte : une installation ancienne restée sur MySQL 5.7 n'a ni fonctions de fenêtre ni clause WITH, puisque MySQL ne les a introduites qu'avec la version 8.0. Les tables portent le préfixe llx_ par défaut, réglable à l'installation, et la version 24.0.0 de Dolibarr est parue le 20 août 2026, suivie de la 24.0.1 le 7 septembre.
Le schéma de Dolibarr se lit dans les fichiers de son dépôt. Celui de la table llx_facture en version 24.0 donne des consignes qu'un analyste doit connaître : la colonne paye est déclarée obsolète au profit du statut 2 sans code de clôture, un statut 2 peut cacher une facture close partiellement payée, et les montants existent deux fois, en monnaie de la société et en devise de la facture. La page du wiki qui décrit les types (standard, remplacement, avoir, acompte, situation) date de 2022 : on la vérifie toujours contre la version installée.
Quels repères chiffrés faut-il connaître avant d'écrire sa première requête ?
- 1 048 576 Nombre maximal de lignes d'une feuille Excel, selon la page des limites consultée le 5 octobre 2026 : au-delà, l'export ne tient plus dans une seule feuille Source : Microsoft, spécifications et limites dans Excel
- 5 ans Durée de support de chaque version majeure de PostgreSQL ; la version 14 cesse d'être maintenue le 12 novembre 2026 (page consultée le 5 octobre 2026) Source : PostgreSQL, versions prises en charge
- PostgreSQL 16 Version minimale de PostgreSQL exigée par Odoo 20, contre PostgreSQL 13 pour Odoo 19 Source : Odoo 20.0, installation depuis les sources
- 15 jours Durée de vie d'une copie de test d'une base Odoo Online, avec cinq copies au plus par base Source : Odoo 20.0, gestion des bases Odoo Online
- MySQL 5.7.7 Version minimale de MySQL acceptée par Dolibarr, à côté de MariaDB 10.3 et de PostgreSQL 9.1 (page modifiée le 2 décembre 2025) Source : Wiki Dolibarr, prérequis
- 15 septembre 2018 Date de la version 3.25.0 de SQLite, la première à proposer les fonctions de fenêtre Source : SQLite, fonctions de fenêtre
À quoi sert la formation selon le métier et le pays ?
Distribution de produits alimentaires sur Dolibarr, à Cotonou
La comptable reconstruit chaque fin de mois la balance âgée des clients à partir de trois exports, et ses totaux ne tombent jamais exactement sur ceux du logiciel.
Formation intra sur une copie MariaDB restaurée chaque semaine. Les écarts de ce genre viennent souvent des avoirs comptés comme des factures, ou des pièces en brouillon ; la requête construite en séance les traite explicitement, porte son total de contrôle et remplace les trois exports.
Négoce de matériaux sur Odoo Online, à Abidjan
Le responsable logistique veut connaître les articles en rupture répétée, mais Odoo Online n'ouvre aucun accès direct à la base.
Sauvegarde téléchargée depuis le gestionnaire de bases, restaurée sur un PostgreSQL de travail par le référent technique, puis séances sur les mouvements de stock et les cumuls par fenêtre.
ONG de santé et projets financés, à Ouagadougou ou à Niamey
Le suivi budgétaire par bailleur croise des dépenses, des lignes analytiques et des projets, et la base contient des données sur les bénéficiaires.
Copie de la base où les colonnes de bénéficiaires sont vidées avant la restauration, compte de lecture limité aux tables financières, et requêtes de prévu et réalisé par ligne budgétaire.
Commerce en ligne, à Dakar
La boutique tourne sur une application PHP avec MySQL, et le gérant veut savoir quels clients reviennent et après combien de jours.
Formation à distance pour deux personnes, sur une réplique en lecture : dernière commande avec ROW_NUMBER, délai entre deux achats avec LAG, export mensuel vers le tableur de l'équipe.
Contrôle de gestion d'une PME industrielle, en France ou en Belgique
Les marges par affaire se calculent dans un classeur alimenté par copier-coller, et le RGPD impose de limiter les données de clients qui circulent.
Séances à distance de trois heures trente sur une base de préproduction, requêtes de marge contrôlées contre la comptabilité, exports réduits aux seules colonnes utiles.
Service financier sur Odoo.sh, en Suisse ou au Québec
L'équipe a appris à ouvrir psql depuis le shell et interroge parfois la production en fin de mois, au moment où les utilisateurs saisissent le plus.
Formation hybride : règles d'équipe écrites (préproduction uniquement, compte de lecture, limite de durée), puis bibliothèque de requêtes de clôture validées contre les états comptables.
Intra, inter, à distance ou hybride : comment la formation SQL s'organise-t-elle ?
| Format | Pour qui | Rythme habituel | Données utilisées |
|---|---|---|---|
| Intra-entreprise | Une équipe financière, commerciale ou logistique qui partage le même logiciel | Six demi-journées sur deux ou trois semaines, puis le module Odoo ou Dolibarr | Copie de votre base, compte de lecture par participant, questions recueillies au cadrage |
| Inter-entreprises | Analystes de structures différentes, une ou deux personnes par organisation | Trois journées consécutives ou six demi-journées espacées | Base d'exercice commune ; aucune donnée d'entreprise montrée au groupe |
| À distance | Équipes réparties entre plusieurs sites, en Afrique, en Europe ou au Canada | Séances de deux heures et demie à trois heures et demie, partage d'écran | Copie accessible par un tunnel sécurisé, ou base SQLite installée sur chaque poste |
| Hybride | Groupes qui gagnent à installer les postes et ouvrir les accès ensemble | Première demi-journée en salle, la suite à distance | Accès testés côte à côte, puis travail sur la copie depuis le bureau de chacun |
| Module seul | Analystes qui écrivent déjà du SQL et changent de logiciel | Une demi-journée | Schéma de votre Odoo ou de votre Dolibarr, et requêtes de l'équipe relues |
Combien coûte la formation SQL, et qu'est-ce qui fait varier le prix ?
Aucun montant n'est affiché : la formation est chiffrée sur devis, après le test de positionnement et l'inventaire des questions à traiter. Le premier échange, le cadrage et le devis sont gratuits. Les éventuels frais d'hébergement d'une copie de la base ou de licence restent payés directement aux éditeurs, au nom de l'entreprise.
Formation de trois jours
Sur devis
- Six demi-journées sur vos questions ou sur la base d'exercice
- Relecture des requêtes de chaque participant
- Aide-mémoire et fiche des différences entre moteurs
- Évaluation et attestation
Module Odoo ou Dolibarr
Sur devis
- Une demi-journée sur le schéma de votre logiciel
- Tables utiles décrites et commentées
- Pièges de statuts, de sociétés et de devises
Préparation de l'accès
Sur devis
- Rendez-vous avec le référent technique
- Compte de lecture et limite de durée
- Copie réduite aux données utiles
- Test du refus d'écriture
Suivi après la formation
Sur devis
- Questions d'application
- Relecture de requêtes écrites seul
- Mise à jour de la bibliothèque de l'équipe
Ce qui fait varier le prix
- Le nombre d'analystes et donc de groupes, huit personnes au plus par groupe.
- Le travail préalable sur la copie : restauration, réduction des données personnelles, création des comptes.
- L'ajout du module consacré au schéma d'Odoo ou de Dolibarr.
- Le mode : sur place à Cotonou, dans vos locaux, à distance ou en formule hybride, et les déplacements éventuels.
- Le nombre de moteurs couverts, par exemple PostgreSQL pour Odoo et MySQL pour une application métier.
- La durée du suivi et la langue des séances, en français ou en anglais.
Comment la formation se commande-t-elle et se règle-t-elle ?
Le premier échange fixe trois points : les logiciels concernés et leur moteur de base de données, la possibilité de préparer une copie, et les questions que chaque analyste veut savoir traiter seul. Les demi-journées peuvent s'enchaîner sur trois jours ou s'espacer d'une semaine ; l'espacement laisse le temps d'essayer les requêtes sur le travail réel, et les séances suivantes partent de ces essais. Le module Odoo ou Dolibarr se place de préférence après le deuxième jour, quand les jointures sont acquises.
Le règlement se fait par Mobile Money (MTN et Moov), carte bancaire, PayPal, virement ou espèces. Le devis indique l'échéancier, et la facture mentionne l'intitulé de la formation, les dates, la durée et le nombre de participants. Un serveur de travail loué pour héberger la copie, ou une licence DBeaver PRO si l'équipe en veut une, sont souscrits au nom de l'entreprise et ne transitent jamais par la facture de formation.
Un fonds de formation peut-il prendre en charge une partie du coût ?
Aucune prise en charge n'est promise ici : chaque fonds décide selon ses propres règles, qui portent sur l'entreprise, sur le prestataire et sur l'action elle-même. Les éléments suivants ont été relus le 5 octobre 2026 sur les pages officielles ; ils servent à préparer les bonnes questions, et seule la réponse écrite du fonds compte.
En Côte d'Ivoire, la page du FDFP sur le plan de formation range les « actions de formation associées à l'utilisation de l'ordinateur » parmi les actions soumises à des dispositions particulières : une formation au SQL en fait partie, et il faut demander au fonds lesquelles s'appliquent. Sa page sur les procédures d'habilitation exige l'habilitation des opérateurs privés qui prétendent à ses financements, en exceptant les structures basées hors de Côte d'Ivoire.
Au Bénin, le décret n° 2022-286 du 11 mai 2022 approuve les statuts du FODEFCA, dont les conditions se demandent au fonds. Au Sénégal, le 3FPT propose un guichet pour le personnel des entreprises, avec une demande déposée en ligne. En France, France Compétences rappelle que l'accès aux fonds publics et mutualisés, ceux des opérateurs de compétences compris, exige la certification Qualiopi depuis le 1er janvier 2022. Richard SALANON ne la détient pas : budgétez la formation sans financement, sauf réponse écrite contraire.
Quelles erreurs voit-on dans les semaines qui suivent, et comment les éviter ?
Une requête fausse ne prévient pas : elle renvoie un chiffre, souvent plausible. Les erreurs suivantes reviennent chez presque toutes les équipes qui commencent, et chacune a sa parade simple.
-
Compter les brouillons et les pièces annulées
Une facture en brouillon ou annulée reste dans la table. Sans filtre sur le statut, le chiffre d'affaires est surestimé. Chaque requête de la bibliothèque déclare explicitement les statuts qu'elle retient.
-
Additionner les avoirs comme des ventes
Dans Dolibarr, l'avoir est un type de facture ; dans d'autres logiciels, son montant est positif et c'est son type qui le distingue. On vérifie le signe et le type avant d'additionner.
-
Gonfler un total par une jointure
Joindre les en-têtes de facture à leurs lignes, puis additionner le montant de l'en-tête, multiplie ce montant par le nombre de lignes. On compte les lignes avant et après chaque jointure, et l'on additionne au bon niveau.
-
Mélanger les sociétés et les devises
Une même base peut contenir plusieurs sociétés et des montants en plusieurs devises. Sans filtre sur la société, ni choix clair entre montant en devise et montant converti, le total ne correspond à aucun état officiel.
-
Perdre le dernier jour du mois
Une colonne qui contient l'heure, filtrée jusqu'au 30 à zéro heure, oublie toute la journée du 30. On filtre avec « strictement avant le premier jour du mois suivant ».
-
Laisser chaque requête dans un fichier personnel
Trois analystes, trois versions de la marge, trois chiffres en réunion. La bibliothèque commune, avec un en-tête et un total de contrôle par requête, règle la question.
-
Exporter plus de données que nécessaire
Un SELECT * exporté vers un tableur emporte noms, téléphones et adresses vers des fichiers qui circulent. On n'exporte que les colonnes utiles à la question, et jamais de données personnelles par confort.
-
Revenir sur la production « juste une fois »
Un soir de clôture, la copie n'est pas à jour et l'on se connecte à la base réelle. La règle d'équipe écrite pendant la formation prévoit le cas : on attend la prochaine copie, ou l'on demande une restauration au référent.
Connexion, langue, données personnelles : que change le contexte local ?
Selon les Facts and Figures 2025 de l'Union internationale des télécommunications, un peu plus d'un Africain sur trois utilise Internet, 36 % contre 74 % de la population mondiale. Une copie de base hébergée à distance devient alors inutilisable à chaque coupure. La formation contourne la difficulté de deux façons : la base d'exercice SQLite tient dans un seul fichier et fonctionne sans aucun réseau, et la copie de l'entreprise peut être restaurée sur un serveur du bureau plutôt que dans le nuage. DBeaver s'installe une fois et travaille ensuite hors connexion.
La langue pose une difficulté inattendue. Le SQL s'écrit avec des mots anglais, et les tables d'Odoo portent des noms anglais (res_partner pour les contacts, account_move pour les pièces comptables), alors que celles de Dolibarr mêlent français et anglais : llx_facture pour les factures, mais llx_product pour les produits. La fiche des tables remise en fin de session traduit chaque nom utile dans le vocabulaire des écrans de l'équipe. Les séances se donnent en français, ou en anglais à la demande, et les montants en francs CFA, sans décimales, sont arrondis au franc dans les requêtes avant d'être additionnés.
Une copie de base contient des données personnelles, et la copier n'est pas anodin. Au Bénin, la loi n° 2017-20 du 20 avril 2018 portant code du numérique encadre leur traitement et, à son article 391, leur transfert vers un État tiers : restaurer une copie sur un serveur loué à l'étranger peut en relever. En Europe, la CNIL rappelle que des données pseudonymisées conservent un caractère personnel, contrairement à des données anonymisées de façon irréversible. Vider les colonnes inutiles de la copie reste donc la mesure la plus efficace, et l'article 5 du RGPD, sur la minimisation, en fait une obligation.
Pourquoi apprendre le SQL d'analyse avec Richard SALANON ?
Richard SALANON est consultant en digitalisation et développeur logiciel, basé à Cotonou, au Bénin. Il crée des sites, des applications web et mobiles, des automatisations et des intégrations d'intelligence artificielle, déploie Odoo et Dolibarr, et forme les équipes à ces outils, pour des entreprises d'Afrique francophone, d'Europe et du Canada.
Les bases de données font partie de son quotidien de développeur. Son parcours ALX avec Udacity, suivi d'août à novembre 2022, couvrait SQL et la modélisation de données ; ses dépôts publics montrent ensuite l'API du découpage administratif du Bénin, avec ses départements, communes, arrondissements et quartiers, puis l'API d'Allo Artisan, écrite avec PostgreSQL. Déployer Odoo et Dolibarr, c'est aussi reprendre des données et vérifier qu'elles sont arrivées entières, sur les tables mêmes que cette formation apprend à lire.
Il compte 6 ans d'expérience dans le numérique, une formation à EPITECH (2022) et déclare avoir formé plus de 200 personnes au numérique, à l'IA, à l'automatisation et aux ERP. Il a créé Wapy, assistant WhatsApp à intelligence artificielle pour les entreprises d'Afrique francophone, et il est co-fondateur d'Audyxa. Il a travaillé dans 15 pays, dont onze en Afrique francophone, ainsi qu'en France, en Belgique, en Suisse et au Canada.
Sa façon d'enseigner le SQL se vérifie : un accès en lecture préparé et testé avant la première séance, des exercices tirés de vos propres questions, un total de contrôle exigé pour chaque requête, huit participants au plus, et la franchise de recommander d'abord le tableur, ou un rapport dans le logiciel, quand le SQL n'est pas la bonne réponse. Son parcours est détaillé sur la page Richard SALANON, les pays où il intervient sur la page zones d'intervention, et le reste du catalogue sur la page formations. Pour une application de gestion construite sur mesure plutôt qu'une compétence, voir l'application web sur mesure.
Que retenir avant d'inscrire vos analystes ?
Le SQL de lecture s'apprend en trois jours quand on connaît déjà ses données, mais il ne pardonne pas l'approximation : un statut oublié ou une jointure mal posée donnent un chiffre faux et crédible. Préparez une copie de la base et un compte qui ne sait que lire, venez avec vos vraies questions, et exigez de chaque requête un total qui se rapproche d'un chiffre du logiciel. Le choix entre Odoo et Dolibarr, s'il n'est pas encore fait, s'éclaire avec le comparatif Odoo et Dolibarr.
Voulez-vous que vos analystes interrogent eux-mêmes les données de vos logiciels ?
Indiquez le nombre d'analystes, leurs métiers, le logiciel concerné (Odoo, Dolibarr ou une application métier), son hébergement et deux ou trois questions que vous voulez traiter. Vous recevez une réponse sous 24 heures, un test de positionnement, puis un devis détaillé.
Demander la formation SQLQuestions fréquentes
Faut-il savoir programmer pour suivre la formation SQL ?
Non. Le SQL de lecture décrit le résultat voulu, pas les étapes pour l'obtenir, et il se rapproche davantage d'un filtre de tableur avancé que d'un langage de programmation. Il faut en revanche pratiquer un tableur, tableaux croisés compris, et connaître les opérations de son poste.
Peut-on abîmer les données de l'entreprise pendant la formation ?
Non, et c'est vérifié avant la première séance : le compte utilisé n'a que des droits de lecture, sur une copie et non sur la production. Une modification tentée avec ce compte est refusée par le serveur, ce que chaque participant constate lui-même au premier jour.
Notre Odoo est sur Odoo Online : peut-on quand même faire du SQL ?
Pas directement : le gestionnaire de bases d'Odoo Online n'ouvre pas de console SQL. On télécharge une sauvegarde au format ZIP, que le référent technique restaure sur un serveur PostgreSQL de travail, et la formation se fait sur cette copie. Sur Odoo.sh ou sur un hébergement propre, on travaille sur la base de préproduction.
Notre Dolibarr tourne sous MySQL 5.7 : est-ce un problème ?
Pour les filtres, les regroupements et les jointures, non. Les fonctions de fenêtre et la clause WITH ne sont en revanche apparues qu'avec MySQL 8.0 : sur une base en 5.7, la formation montre les contournements par sous-requêtes, et la copie peut être restaurée sur une version plus récente pour les exercices.
Quelle différence avec la formation Excel et Google Sheets ?
Le tableur travaille sur ce qu'on lui donne ; le SQL va chercher la donnée à sa source, dans plusieurs tables à la fois, sans export intermédiaire. Les deux se complètent : beaucoup d'analystes exportent ensuite le résultat de leur requête vers le tableur pour le mettre en forme. Si les formules et les tableaux croisés ne sont pas acquis, la formation tableur passe d'abord.
La formation apprend-elle à construire des tableaux de bord ?
Non. Elle produit des résultats justes et exportables. Les tableaux de bord construits dans Power BI ou Looker Studio ont leur propre formation, reliée en bas de page, et elle tire profit des requêtes apprises ici, qui deviennent souvent leurs sources.
Quel outil faut-il installer ?
DBeaver Community, gratuit et open source, qui se connecte à PostgreSQL, à MySQL, à MariaDB et à SQLite. Une équipe qui ne travaille que sur Odoo peut préférer pgAdmin, gratuit lui aussi. Aucune licence payante n'est nécessaire, et la liste d'installation arrive une semaine avant la première séance.
Les requêtes apprises fonctionneront-elles si nous changeons de logiciel ?
La syntaxe, oui, à quelques différences près entre moteurs, que la fiche remise en fin de session récapitule. Les noms de tables et de colonnes, non : ils dépendent du logiciel. C'est pourquoi chaque requête de la bibliothèque porte un en-tête qui dit quelles tables elle lit et quel total la valide.
Peut-on suivre la formation à distance ?
Oui, en séances de deux heures et demie à trois heures et demie avec partage d'écran. La copie de la base est soit accessible par un accès sécurisé mis en place par votre service informatique, soit remplacée par la base d'exercice SQLite installée sur chaque poste, qui fonctionne sans connexion.
Nos données contiennent des informations sur les clients et les salariés : comment faire ?
Les colonnes personnelles qui ne servent à aucune question sont vidées ou remplacées par des valeurs fictives sur la copie, avant la session. Les analyses de gestion n'ont besoin que des montants, des dates, des statuts et des liens entre tables, et les exports se limitent aux colonnes utiles.
Combien coûte la formation, et comment la régler ?
Le prix est fixé sur devis, selon le nombre d'analystes, la préparation de la copie, l'ajout du module Odoo ou Dolibarr, le mode et le suivi prévu. Le premier échange, le cadrage et le devis sont gratuits. Le règlement se fait par Mobile Money, carte bancaire, PayPal, virement ou espèces.
Obtient-on une certification ?
Non. La formation se conclut par une évaluation sur trois questions réelles traitées seul et par une attestation de fin de formation. Richard SALANON n'est certifié par aucun éditeur ; la bibliothèque de requêtes validées que l'équipe conserve est la preuve la plus utile de ce qui a été appris.
Sources
- PostgreSQL, versions prises en charge et politique de support, consulté le
- PostgreSQL 18, rôles prédéfinis (pg_read_all_data), consulté le
- PostgreSQL 18, paramètres par défaut des connexions client (default_transaction_read_only, statement_timeout), consulté le
- PostgreSQL 18, tutoriel des fonctions de fenêtre, consulté le
- PostgreSQL 18, fonctions et opérateurs mathématiques (division entière), consulté le
- PostgreSQL 18, codes d'erreur (division_by_zero), consulté le
- MySQL 8.0 Reference Manual, nouveautés de MySQL 8.0 (fonctions de fenêtre, expressions de table communes), consulté le
- MySQL 8.4 Reference Manual, indications d'optimiseur (MAX_EXECUTION_TIME), consulté le
- MySQL 8.4 Reference Manual, opérateurs arithmétiques, consulté le
- MariaDB, changements et améliorations de MariaDB 10.2, consulté le
- MariaDB, opérateur de division, consulté le
- MariaDB, variables système du serveur (max_statement_time), consulté le
- SQLite, fonctions de fenêtre (historique), consulté le
- SQLite, page d'accueil et dernière version publiée, consulté le
- SQLite, noms de fichiers URI (mode lecture seule), consulté le
- Odoo 20.0, installation depuis les sources (PostgreSQL), consulté le
- Odoo 20.0, gestion des bases Odoo Online, consulté le
- Odoo 20.0, branches Odoo.sh (onglet Shell et psql), consulté le
- Odoo 20.0, tutoriel Server Framework 101, chapitre 3 : modèles et champs, consulté le
- Odoo 20.0, mode développeur, consulté le
- Odoo, tarifs (formules Standard et Personnalisé), consulté le
- Wiki Dolibarr, prérequis (bases de données acceptées), consulté le
- Wiki Dolibarr, table llx_facture, consulté le
- Dolibarr sur GitHub, définition de la table llx_facture en version 24.0, consulté le
- Dolibarr sur GitHub, versions publiées, consulté le
- DBeaver Community, présentation et dernière version, consulté le
- DBeaver PRO, tarifs des licences, consulté le
- pgAdmin, outil d'administration de PostgreSQL, consulté le
- MySQL, téléchargement de MySQL Workbench, consulté le
- DB Browser for SQLite, consulté le
- Microsoft, spécifications et limites dans Excel, consulté le
- CNIL, l'anonymisation de données personnelles, consulté le
- CNIL, RGPD, chapitre 2 : principes (article 5), consulté le
- Union internationale des télécommunications, Facts and Figures 2025 : usage d'Internet, consulté le
- Secrétariat général du Gouvernement du Bénin, loi n° 2017-20 du 20 avril 2018 portant code du numérique, consulté le
- FDFP, plan de formation des entreprises, consulté le
- FDFP, procédures d'habilitation des opérateurs de formation, consulté le
- Secrétariat général du Gouvernement du Bénin, décret n° 2022-286 du 11 mai 2022 portant approbation des statuts du FODEFCA, consulté le
- 3FPT, guichets de financement, consulté le
- France Compétences, Qualiopi : l'obligation qualité en vigueur depuis le 1er janvier 2022, consulté le