ACCESS (SQL) : figer le résultat d’une requête dans une table

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 ACCESSMaîtriser le langage de requête SQL / Analyse de données

Share Button
The following two tabs change content below.
Benoît RIVIERE
Après seize années passées en cabinet d’expertise-comptable et de commissariat aux comptes (où j’ai exercé comme expert-comptable et chef de mission audit), j’ai pris le poste de directeur comptable d’un groupe de distribution automobile en novembre 2014. Au cours de ma carrière, j’ai acquis une expérience significative en audit et en exploitation des systèmes d’information (analyse de données, automatisation des tâches, programmation informatique) au service de la production des comptes annuels et consolidés. C’est cette expérience personnelle et ma passion pour l’informatique que je partage sur ce blog. Mon CV / Réalisations personnelles et projets informatiques / Ma collection / Me contacter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.