Demander un devis
Formation

Formation SQL pour analystes métiers : interroger en lecture seule les données d'Odoo, de Dolibarr ou de vos applications, des premiers filtres aux fonctions de fenêtre

En bref. Une formation pratique qui apprend aux analystes de la finance, du commerce et de la logistique à interroger eux-mêmes la base de données de leurs logiciels, Odoo, Dolibarr ou une application métier, avec des requêtes de lecture uniquement : filtres, regroupements, jointures, sous-requêtes et fonctions de fenêtre. Elle ne demande aucune notion de programmation, seulement la pratique d'un tableur et la connaissance de ses propres données. Elle dure trois jours en six demi-journées, avec une demi-journée optionnelle sur le schéma d'Odoo ou de Dolibarr, en intra, en inter, à distance ou en formule hybride, toujours sur une copie et avec un compte qui ne peut rien modifier. Le prix est fixé sur devis.

Mis à jour le

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 ?

  1. 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.

  2. 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.

  3. 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é.

  4. 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.

  5. 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.

  6. 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 ?

Exemples tirés des questions qui reviennent au cadrage. En intra, ils sont remplacés par celles des participants ; chaque exercice se termine par un rapprochement avec un chiffre que l'entreprise connaît déjà.
MétierQuestion poséeNotions SQL mobiliséesContrôle de fin d'exercice
FinanceQuelle est la balance âgée des clients au dernier jour du mois, par tranche de retard ?Filtres de dates, CASE WHEN, SUM et GROUP BYLe total des tranches égale le solde clients de la comptabilité à la même date.
Contrôle de gestionQuelle marge chaque famille de produits a-t-elle dégagée par trimestre ?Jointures entre lignes de facture et produits, regroupement par périodeLa 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 statutsLe nombre de brouillons concorde avec le filtre équivalent dans le logiciel.
CommerceQuels clients actifs l'an dernier n'ont rien commandé depuis six mois ?Sous-requête ou NOT EXISTS, MAX sur les datesTrois clients tirés au hasard dans la liste sont vérifiés dans leur fiche.
Administration des ventesCombien de devis sont transformés en commande, par commercial et par mois ?COUNT(DISTINCT), CASE WHEN, regroupementLe nombre total de devis égale celui du logiciel sur la période.
LogistiqueQuels articles ont connu plus de trois ruptures sur le semestre ?Mouvements de stock, cumul avec SUM() OVER, comptage conditionnelLe stock calculé d'un article témoin égale celui affiché par le logiciel.
AchatsQuel 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 classementLes 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 ?

Versions et tarifs relevés le 5 octobre 2026 sur les pages des éditeurs citées dans les sources ; les prix de DBeaver PRO sont en dollars, hors taxes, par an. La formation se fait entièrement avec des outils gratuits ; une licence payante n'est jamais exigée.
OutilRôle dans la formationVersion relevéeCoût d'éditeur
DBeaver CommunityClient de requêtes principal : un seul outil pour PostgreSQL, MySQL, MariaDB et SQLite26.2.1, publiée le 21 septembre 2026Gratuit et open source ; DBeaver PRO en option : Lite 113 dollars, Enterprise 255 dollars, Ultimate 510 dollars par an, essai de 14 jours
pgAdmin 4Alternative pour les équipes qui ne travaillent que sur PostgreSQL, donc sur Odoo9.18, publiée le 17 septembre 2026Gratuit, sous licence PostgreSQL
MySQL WorkbenchAlternative pour les équipes dont la base tourne sous MySQLVersion GA proposée au téléchargement le 5 octobre 2026Édition communautaire gratuite
DB Browser for SQLiteOuvrir la base d'exercice sans aucun serveur, y compris hors connexion3.13Gratuit et open source
PostgreSQLMoteur d'Odoo, et de certains Dolibarr18.6, version majeure 18 sortie le 25 septembre 2025Gratuit
MySQL ou MariaDBMoteurs les plus fréquents sous Dolibarr et sous les applications PHPCelle de votre serveur ; les fonctions de fenêtre exigent MySQL 8.0 ou MariaDB 10.2 au moinsÉditions communautaires gratuites
SQLiteMoteur de la base d'exercice : un seul fichier, aucune installation de serveur3.53.4, publiée le 24 juillet 2026Domaine public, gratuit
OdooSource des données quand l'entreprise l'utiliseOdoo 20.0, dernière versionFormule 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 ?

Les requêtes de lecture s'écrivent presque à l'identique dans les quatre moteurs. Ces différences, tirées de leurs documentations officielles consultées le 5 octobre 2026, sont celles qui faussent un résultat ou bloquent une requête recopiée d'un moteur à l'autre.
PointPostgreSQLMySQLMariaDBSQLite
Fonctions de fenêtre et clause WITHDisponiblesDepuis MySQL 8.0 ; absentes de MySQL 5.7Depuis MariaDB 10.2Depuis la version 3.25.0 du 15 septembre 2018
Division de deux entiersTronquée : 5 / 2 donne 2Résultat décimal : 5 / 2 donne 2,5 ; DIV pour la division entièreRésultat décimal, quatre chiffres après la virgule par défautTronquée vers zéro, comme PostgreSQL
Division par zéroErreur division_by_zero, la requête s'arrêteRésultat NULL, sans erreur visibleRésultat NULL, avec un simple avertissementRésultat NULL
Regrouper par moisdate_trunc('month', date)DATE_FORMAT(date, '%Y-%m')DATE_FORMAT, comme MySQLstrftime('%Y-%m', date)
Limiter la durée d'une requêteParamètre statement_timeoutVariable max_execution_time ou indication MAX_EXECUTION_TIME, pour les SELECTVariable max_statement_timeSans objet : base locale, sur le poste
Accès en lecture seuleDroits SELECT, ou rôle pg_read_all_dataUtilisateur limité à SELECTUtilisateur limité à SELECTOuverture 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 ?

À 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 ?

Le format se choisit au premier échange, selon le nombre d'analystes, la possibilité de préparer une copie de la base et la dispersion de l'équipe. Huit participants au plus par groupe.
FormatPour quiRythme habituelDonnées utilisées
Intra-entrepriseUne équipe financière, commerciale ou logistique qui partage le même logicielSix demi-journées sur deux ou trois semaines, puis le module Odoo ou DolibarrCopie de votre base, compte de lecture par participant, questions recueillies au cadrage
Inter-entreprisesAnalystes de structures différentes, une ou deux personnes par organisationTrois journées consécutives ou six demi-journées espacéesBase 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 CanadaSéances de deux heures et demie à trois heures et demie, partage d'écranCopie accessible par un tunnel sécurisé, ou base SQLite installée sur chaque poste
HybrideGroupes qui gagnent à installer les postes et ouvrir les accès ensemblePremière demi-journée en salle, la suite à distanceAccès testés côte à côte, puis travail sur la copie depuis le bureau de chacun
Module seulAnalystes qui écrivent déjà du SQL et changent de logicielUne demi-journéeSché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 SQL

Questions 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

  1. PostgreSQL, versions prises en charge et politique de support, consulté le
  2. PostgreSQL 18, rôles prédéfinis (pg_read_all_data), consulté le
  3. PostgreSQL 18, paramètres par défaut des connexions client (default_transaction_read_only, statement_timeout), consulté le
  4. PostgreSQL 18, tutoriel des fonctions de fenêtre, consulté le
  5. PostgreSQL 18, fonctions et opérateurs mathématiques (division entière), consulté le
  6. PostgreSQL 18, codes d'erreur (division_by_zero), consulté le
  7. MySQL 8.0 Reference Manual, nouveautés de MySQL 8.0 (fonctions de fenêtre, expressions de table communes), consulté le
  8. MySQL 8.4 Reference Manual, indications d'optimiseur (MAX_EXECUTION_TIME), consulté le
  9. MySQL 8.4 Reference Manual, opérateurs arithmétiques, consulté le
  10. MariaDB, changements et améliorations de MariaDB 10.2, consulté le
  11. MariaDB, opérateur de division, consulté le
  12. MariaDB, variables système du serveur (max_statement_time), consulté le
  13. SQLite, fonctions de fenêtre (historique), consulté le
  14. SQLite, page d'accueil et dernière version publiée, consulté le
  15. SQLite, noms de fichiers URI (mode lecture seule), consulté le
  16. Odoo 20.0, installation depuis les sources (PostgreSQL), consulté le
  17. Odoo 20.0, gestion des bases Odoo Online, consulté le
  18. Odoo 20.0, branches Odoo.sh (onglet Shell et psql), consulté le
  19. Odoo 20.0, tutoriel Server Framework 101, chapitre 3 : modèles et champs, consulté le
  20. Odoo 20.0, mode développeur, consulté le
  21. Odoo, tarifs (formules Standard et Personnalisé), consulté le
  22. Wiki Dolibarr, prérequis (bases de données acceptées), consulté le
  23. Wiki Dolibarr, table llx_facture, consulté le
  24. Dolibarr sur GitHub, définition de la table llx_facture en version 24.0, consulté le
  25. Dolibarr sur GitHub, versions publiées, consulté le
  26. DBeaver Community, présentation et dernière version, consulté le
  27. DBeaver PRO, tarifs des licences, consulté le
  28. pgAdmin, outil d'administration de PostgreSQL, consulté le
  29. MySQL, téléchargement de MySQL Workbench, consulté le
  30. DB Browser for SQLite, consulté le
  31. Microsoft, spécifications et limites dans Excel, consulté le
  32. CNIL, l'anonymisation de données personnelles, consulté le
  33. CNIL, RGPD, chapitre 2 : principes (article 5), consulté le
  34. Union internationale des télécommunications, Facts and Figures 2025 : usage d'Internet, consulté le
  35. 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
  36. FDFP, plan de formation des entreprises, consulté le
  37. FDFP, procédures d'habilitation des opérateurs de formation, consulté le
  38. 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
  39. 3FPT, guichets de financement, consulté le
  40. France Compétences, Qualiopi : l'obligation qualité en vigueur depuis le 1er janvier 2022, consulté le

Pour aller plus loin

Parlons de votre projet

Décrivez votre besoin : je reviens vers vous avec une première recommandation, sans engagement.

Demander un devis
Demander un devis WhatsApp