IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Lancer une requête sur une union de tables


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Lancer une requête sur une union de tables
    Bonjour,

    J'ai une très grosse base de données qui comprend 12 fois 3 tables de 500Mo chacune.
    En gros j'ai Table1(1 à 12), Table2(1 à 12), Table3(1 à 12)
    Elles sont toutes liées sous access avec une bonne dénomination, je ne souhaite pas passer à un outil SQL.

    J'ai fait une requête sur le premier jeu de trois tables: Table1(1), Table2(1), Table3(1).

    J'aimerais que ma requête porte plutôt sur l'union de toutes les table1, l'union des table2 et l'union des table3.

    Pouvez-vous m'aider à modifier le code suivant pour réaliser ce que je souhaite ?
    Voici le code SQL que j'utilise pour la requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Entete_facture_1101.Code_groupement, Clients.Nom_client, Entete_facture_1101.Code_client_commandeur, Sum(Entete_facture_1101.Montant_facture_HT) AS SumOfMontant_facture_HT, Sum(Liaison_accords_commandes_1101.Montant_remise) AS SumOfMontant_remise
    FROM (Entete_facture_1101 INNER JOIN Liaison_accords_commandes_1101 ON Entete_facture_1101.Code_facture = Liaison_accords_commandes_1101.Code_facture) INNER JOIN Clients ON Entete_facture_1101.Code_groupement = Clients.Code_Client
    GROUP BY Entete_facture_1101.Code_groupement, Clients.Nom_client, Entete_facture_1101.Code_client_commandeur;
    Dans ce code, table1 s'appelle Entete_facture_1101 (suffixe de 01 à 12), table2 s'appelle Liaison_accords_commandes_1101 (suffixe de 01 à 12) et ici exceptionellement table3 s'appelle Clients et ne change pas.

    Merci beaucoup pour votre aide !!

  2. #2
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Bonjour,

    j'ai déjà une question qui me démange : comment fait tu pour stocker
    12 fois 3 tables de 500Mo chacune
    , soit environ 18 Go dans une base access de 2 Go au max ?
    Ou alors, elles sont chacune dans 12 bases distinctes ?

    Le 2ème point est que de lier 3 requêtes UNION (les + lentes à l'exécution) de 12 tables chacune, ça risque de plomber ton appli. Mais on ne saura jamais sans essayer. Donc,

    Dans le principe, ça devrait être assez simple (toujours comme ça avant )
    - tu réalises 3 requêtes UNION, que tu enregistres,
    - dans le code SQL que tu nous montres, tu remplaces les noms des tables par les noms des requêtes UNION.
    Théoriquement, et si ton PC n'explose pas, ça devrait marcher.

    Ceci dit, il y a quelque chose qui me chiffonne dans l'idée d'une requête Union portant sur 12 tables. Pourquoi ne peux tu pas stocker toutes ces données, que j'imagine identiques, dans une seule table, avec juste un champ supplémentaire (Indice ou ID ou ???) qui fera partie de la clé primaire et prendra les valeurs de 1 à 12.
    - tu pourras extraire les données qui t'intéressent, sur une table à la fois, avec un WHERE très simple (et très rapide)
    ou bien
    - traiter les 12 en une seule fois, sans la lenteur de l'Union.

    Quand tu dis 12, je suppose qu'il s'agit de janvier à décembre ?

Discussions similaires

  1. Remplacer une requête sur une class par une valeur constante ?
    Par Lillie CHARLOTTE dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/06/2015, 09h59
  2. [Toutes versions] Faire en VBA une requête sur une requête paramétrée
    Par guidav dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/02/2012, 17h10
  3. Réponses: 1
    Dernier message: 30/08/2011, 09h53
  4. Tri d'une requête sur une valeur ou une autre
    Par mims1664 dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/08/2009, 17h40
  5. Réponses: 5
    Dernier message: 08/01/2007, 21h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo