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

SSRS Discussion :

Utiliser un paramètre comme nom de table SQL [2008]


Sujet :

SSRS

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Utiliser un paramètre comme nom de table SQL
    Bonjour,

    Je souhaite pouvoir modifier ma requête sql afin que celle ci interroge une table dont le nom sera construit à partir d'un paramètre.

    Mon paramètre est NomAgence1
    Ma requete doit etre :
    select * from [Nomagence1&vente] where....

    Je dois donc concatener ce que je récupère en paramètre avec des crochets et du texte.

    J'ai bien sur tenter de créer un paramètre du style @table1 avec pour valeur ="[" & Parameters!Agences.Value & "$vente]" mais ça ne fonctionne pas.
    J'ai l'erreur " la variable de table @table1 doit être déclarée" !

    Mais impossible.

    Help me please

  2. #2
    Membre averti
    Homme Profil pro
    Consultant B.I. / .net
    Inscrit en
    Mai 2003
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant B.I. / .net

    Informations forums :
    Inscription : Mai 2003
    Messages : 215
    Points : 445
    Points
    445
    Par défaut
    Bonjour,

    Je suppose que la structure de toutes vos tables AgenceVente sont identiques ou à minima que les colonnes de sortie de votre requête sont toujours les mêmes quelque soit la table interrogée.

    Pour réaliser ce genre de chose, vous allez devoir passer par du SQL Dynamique

    De mémoire, c'est impossible directement dans le requêteur SSRS, par conséquent, il faudrait soit :
    * coder une procédure stockée qui réalise les différentes opérations de concaténations nécessaires à la création de la requête et qui appelle sp_executesql. Utiliser cette procédure depuis SSRS comme source du dataset avec en paramètre le nom de l'agence
    * si la liste des agences est finie et connune, pourquoi pas coder une vue dans la base de donnée contenant l'union de toutes ces tables et une colonne supplémentaire précisant la table source de chaque ligne. Ceci permettrait d'écrire dans le requêteur de SSRS une requête du type : Select * from maVue where tableName = @Agence + 'Vente'

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Tout d'abord merci pour votre réponse.

    Je m'en suis sorti avec votre 2ème technique.
    Mais la 1ère méthode est plus propre, je vais explorer aussi cette solution, ça accelerera le temps de traitement.

    Merci.

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

Discussions similaires

  1. Utiliser une variable comme nom de table Access dans une requête SQL
    Par stsym dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/10/2011, 17h11
  2. Réponses: 2
    Dernier message: 12/04/2011, 09h21
  3. paramètre comme nom de table dans la commande alter table
    Par zebrette dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/11/2010, 16h50
  4. [ProC][SQL] Utiliser une variable comme nom de curseur
    Par adiGuba dans le forum Interfaces de programmation
    Réponses: 1
    Dernier message: 06/12/2006, 11h55
  5. [ PL/pgSQL ] Passage de paramètres et nom de table
    Par Dam)rpgheaven dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 16/06/2005, 14h34

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