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

Langage SQL Discussion :

Requête sur des tables dont les noms sont dans une table [en attente]


Sujet :

Langage SQL

  1. #1
    Membre émérite
    Profil pro
    retraité
    Inscrit en
    Décembre 2010
    Messages
    806
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 806
    Points : 2 310
    Points
    2 310
    Par défaut Requête sur des tables dont les noms sont dans une table [en attente]
    Bonjour,
    est il possible de stoker des noms de tables (ou requêtes) dans une table et ensuite de les utiliser via une requête du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from (select nom from table_nom where id=1;
    La raison ? j'avais fait une application C++ qui créait les requêtes via une source de données, mais je dois refaire cela pour que cela fonctionne sous ACCESS en VBA donc. Donc mon but est de faire le maximum en SQL portable plutôt que tout en VBA.
    Merci
    Bonne fin de journée

  2. #2
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    je ne sais pas si ça il répond bien a votre besoin ?

    Expression de table commune (CTE)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WITH cte as (SELECT name FROM sys.tables)
     
    SELECT * FROM cte

    table sous-requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT  *
    FROM    (
            SELECT  name
            FROM    sys.tables
            ) Tables

  3. #3
    Membre émérite
    Profil pro
    retraité
    Inscrit en
    Décembre 2010
    Messages
    806
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 806
    Points : 2 310
    Points
    2 310
    Par défaut Marche pas
    Si je fais juste un select * from sys.tables il me dit qu'il ne connait pas le fichier sys.mdb

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Citation Envoyé par archqt Voir le message
    est il possible de stocker des noms de tables (ou requêtes) dans une table et ensuite de les utiliser via une requête du genre select * from (select nom from table_nom where id=1);
    à mon avis oui, un SQL ou un nom de table ne sont "que" du texte
    maintenant pour ce qui est de l'exploitation c'est une autre paire de manches ! plus lié au SGBD et au langage (dans votre cas si j'ai bien compris ACCESS et VBA)

    La question est donc plus du ressort du forum Access que du langage SQL sensu-stricto, une piste : AMHA plutôt que la CTE, EXECUTE Statement
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Et bien non, ce n'est pas possible en SQL simple ni avec la sous-requête ni avec la CTE.

    Dans les deux cas, la requête renvoie une chaîne de caractères.
    Votre moteur SQL se retrouve à devoir exécuter une requête du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from 'matable';
    Qui est inexécutable.

    Il faut bien passer par du SQL dynamique.

  6. #6
    Membre émérite
    Profil pro
    retraité
    Inscrit en
    Décembre 2010
    Messages
    806
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 806
    Points : 2 310
    Points
    2 310
    Par défaut
    Merci de vos réponses à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/01/2012, 15h29
  2. Réponses: 6
    Dernier message: 10/11/2011, 14h50
  3. modifier des tables dont les noms sont dans une autre
    Par lapin_did dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/09/2010, 09h45
  4. Requete SQL sur une table dont le nom est dans une autre table
    Par orangepresse dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/09/2007, 13h32
  5. Accéder à une table dont le nom est dans une table
    Par claralavraie dans le forum Oracle
    Réponses: 7
    Dernier message: 26/12/2006, 15h51

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