Les requêtes SQL permettent d’extraire des informations de bases de données. Le résultat de ces requêtes peut lui-même être interrogé par une autre requête (sous-requête) et ainsi de suite. Appliquée à des volumes de données conséquents, cette pratique de sous-requêtes entraîne des temps de traitements qui s’allongent à chaque niveau d’interrogation. Pour pallier à cet inconvénient, il est possible de figer le résultat des requêtes dans une table avant interrogation par la requête suivante.
SELECT Champs et calculs INTO TableDestination FROM TableOrigine
L’assertion INTO TableDestination envoie le résultat de la requête SELECT… FROM TableOrigine dans une nouvelle table nommée TableDestination.
Pour figer le résultat de la requête dans une table située dans une autre base de données, il suffit d’ajouter une clause IN suivie de du chemin complet d’accès à la base de données externe :
SELECT Champs et calculs INTO TableDestination IN 'C:\base.accdb' FROM TableOrigine
L’exemple qui suit illustre l’utilisation de l’assertion INTO… IN… appliquée à un FEC :
SELECT CodeEntité, JournalCode, JournalLib, Ecriturenum, EcritureDate, CompteNum, CompteLib, CompteAuxNum, CompteAuxLib, PièceRéf, PièceDate, EcritureLib, Débit, Crédit INTO ECRITURES IN 'C:\ANA-FEC.accdb' FROM ECRITURES_brutes WHERE Left([CompteNum],1)<>"9";
Les champs listés dans la clause SELECT contenus dans la table ECRITURES_brutes (clause FROM) et dont le numéro de compte général ne commence pas par un 9 (WHERE Left([CompteNum],1)<>”9″) sont envoyés dans la table ECRITURES créée à cet effet (INTO) dans la base de données ANA-FEC.accdb stockées sur le disque C:\ (clause IN).
Dans l’hypothèse où la table ECRITURES existait déjà, une requête insertion permettrait d’insérer le résultat de l’extraction à la suite de ses données :
INSERT INTO ECRITURES IN 'C:\ANA-FEC.accdb' SELECT CodeEntité, JournalCode, JournalLib, Ecriturenum, EcritureDate, CompteNum, CompteLib, CompteAuxNum, CompteAuxLib, PièceRéf, PièceDate, EcritureLib, Débit, Crédit FROM ECRITURES_brutes WHERE Left([CompteNum],1)<>"9";
Approfondir le sujet : Maîtriser ACCESS / Maîtriser le langage de requête SQL / Analyse de données
Derniers articles parBenoît RIVIERE (voir tous)
- Projet IXP (v1.2beta) : quelques nouvelles de mon interpréteur d’expressions - dimanche 1 décembre 2024
- Nouveautés de l’interpréteur de formules de calcul (v1.1) - dimanche 3 novembre 2024
- Dématérialisation de la facturation : nouvelles mentions obligatoires - lundi 28 octobre 2024
- Interpréteur de formules de calcul en Python - dimanche 13 octobre 2024
- Les données de la facturation électronique - mercredi 9 octobre 2024
Cher Bénoît,
je sollicite ton aide pour réaliser mes revues analytiques mensuelles de la Comptabilité(tous les cycles), de la Paie, des Stocks, des Achats.
Bien cordialement,