Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 12/04/2017 10:52:43
- meonais
- Membre
Nommer une table avec nom concaténé
Bonjour,
Je ne sais trop comment intituler ce post... Peut-être aurez-vous des idées avec le développement de mon problème ?
J'ai un ensemble de requêtes qui donnent des résultats sur un ou plusieurs départements de France. Je fais choisir les départements souhaités dans un csv que j'importe avec copy (cette table [choix_dept] sera la jointure de toutes mes requêtes).
Mes requêtes aboutissent à plusieurs tables de résultats, nommées de cette manière : "t01_nom_du_traitement".
Est-il possible d'ajouter les numéros des départements choisis au nom de la table pour avoir quelque chose comme ça "t01_nom_du_traitement_01_69_26_07" ?
J'ai démarré mes recherches en créant une table temporaire avec un enregistrement regroupant les numéros de département :
CREATE TEMP TABLE tempzone AS(select array_to_string(array_agg(tmpzone),'-') from (SELECT cast(insee_dep as varchar) FROM schema.choix_dept GROUP BY insee_dep) tmpzone);
et j'ai tenté (oui, je sais c'est plus que tiré par les cheveux) ça pour nommer la table...
CREATE TABLE schema.t01_nom_du_traitement_||tmpzone AS
(expression);
Ce qui me génère (évidemment) le message suivant :
ERROR: syntax error at or near "||"
LINE 1: CREATE TABLE roe.t01_nom_du_traitement_||tmpzone AS
^
********** Erreur **********
ERROR: syntax error at or near "||"
État SQL :42601
PS : je suis sous PostgreSQL 9.5
Dernière modification par meonais (12/04/2017 11:00:58)
Hors ligne
#2 12/04/2017 11:17:35
- Arkhena
- Membre
Re : Nommer une table avec nom concaténé
Bonjour,
Il va vous falloir utiiser du SQL dynamic pour faire ça:
https://www.postgresql.org/docs/9.5/sta … namic.html
Cordialement,
Arkhena
Hors ligne
#3 12/04/2017 11:20:45
- gleu
- Administrateur
Re : Nommer une table avec nom concaténé
Il faut passer par un langage de procédure stockée et une requête dynamique.
Guillaume.
Hors ligne
#4 12/04/2017 11:34:38
- meonais
- Membre
Re : Nommer une table avec nom concaténé
Merci à vous,
je regarde tout ça
Hors ligne
#5 12/04/2017 14:06:09
- meonais
- Membre
Re : Nommer une table avec nom concaténé
Re bonjour,
Ce n'est pas tout à fait la même demande mais je suspecte la même réponse (SQL dynamique) à la question suivante :
J'importe (copy) des fichiers csv qui représentent des extractions de données à date fixe (la date de l'extraction n'est pas indiquée dans le champ du fichier).
Est-il possible de récupérer une partie du nom du fichier csv (par exemple 20170422 sur 20170422_extraction_donnee.csv) importé pour le réinjecter dans les requêtes (par exemple en suffixe de noms de tables de résultats) ?
Si ce n'est pas possible, je ne vois que la possibilité de faire créer (manuellement) un champ dans le csv, avec la date de l'extraction, puis seulement d'importer le csv.
A moins qu'il y ait d'autre piste à explorer ?
Merci d'avance pour vos retours,
Hors ligne
#6 12/04/2017 14:30:51
- gleu
- Administrateur
Re : Nommer une table avec nom concaténé
SQL dynamique une fois encore.
Guillaume.
Hors ligne
Pages : 1