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

Sybase Discussion :

Nom de la table variable suivant le mois


Sujet :

Sybase

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 67
    Points : 48
    Points
    48
    Par défaut Nom de la table variable suivant le mois
    Bonjour,

    Je voudrais sélectionner des données à partir d'une table qui se crée automatiquement chaque mois avec le prefix du mois qui est un nombre exemple
    matable_17045: mois de novembre
    matable_17075: mois de décembre

    comment je peux utilser ma requête avec le nom de la table suivant le mois désiré
    j'ai trouvé ce code mais cela ne marche pas
    'select * from matable_'||mois_courant


    J'espère que j'ai bien présenté le problème

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Qui a eu l'idée d'une telle solution, c'est vraiment se compliquer la vie pour rien !
    Il y avait d'autres façons de gérer des données mensuelles sans impacter le code SQL, en fonction du besoin :
    - utilisation de vues
    - partitionnement
    - filtre dans les requêtes
    etc...

    La solution que vous proposez n'est possible que si vous utilisez du SQL dynamique

    Mais le mieux, s'il n'est pas trop tard, est de revoir cette construction aberrante !

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Une solution de contournement, s'il n'est pas possible de modifier la structure de la base de données, serait de construire une vue qui présentera toutes les tables, à condition bien sûr que celles-ci présentent toutes la même structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    create view mestables
    as  select  17045   as prefixe
            ,   tbl.*
        from    matable_17045 as tbl
    union all
        select  17075   as prefixe
            ,   tbl.*
        from    matable_17075 as tbl
    union all
        ...
    Il devient alors possible d'interroger un seul objet, construit sur un modèle normalisé.
    Au passage, il sera aussi utile de mettre une référence au mois plus pratique que ce code à la place de la colonne prefixe...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Solution applicable sous condition que le 1er janvier, le nom de la table soit le même que celui de l'année passée (avec des noms comme 17075 ou 17045 c'est pas facile de le deviner), sinon il faudra penser à modifier vue tous les mois pour y ajouter les nouveaux noms.
    EDIT : une solution du même accabit : créer un alias ou synonyme, ainsi la requête utilise le nom du synonyme, qui lui ne change pas, plutôt que celui de la table

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    as tu essayé un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DECLARE @REQ VARCHAR(8000)
    DECLARE @TABLE VARCHAR(255)
    SET @TABLE = 'MaTable'
    SET @REQ = 'SELECT * FROM '+@TABLE
    EXECUTE(@REQ)
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

Discussions similaires

  1. [XL-2010] Enregistrer avec un nom et un répertoire variable suivant le contenu de la feuille
    Par liner77 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 30/10/2014, 18h18
  2. [VBA]Pb Dcount - Nom d'une table dans une variable
    Par porcinet82 dans le forum VBA Access
    Réponses: 9
    Dernier message: 17/04/2007, 09h11
  3. Réponses: 4
    Dernier message: 10/07/2006, 13h51
  4. LOT DTS - nom de la table variable
    Par speed034 dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 21/02/2006, 10h20
  5. Nom de table variable ?
    Par szdavid dans le forum Oracle
    Réponses: 2
    Dernier message: 10/08/2005, 10h56

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