Bonjour,
Je souhaite créé une table where les noms des colonnes sont récupérer depuis les résultats d'un requete.
Exemple :
create table TEST
colomns name (SELECT DISTINCT(tr_effectif) FROM VENTES)
Merci de votre aide
Bonjour,
Je souhaite créé une table where les noms des colonnes sont récupérer depuis les résultats d'un requete.
Exemple :
create table TEST
colomns name (SELECT DISTINCT(tr_effectif) FROM VENTES)
Merci de votre aide
Ce type d'opération ne peut être effectué qu'avec du SQL dynamique, pas par une requête directe.
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.
Bonsoir,
Recherchez les mots clef 'sql dynamique', 'prepare' et 'execute', vous trouverez les explications sur le SQL dynamique
Par contre, pouvez vous expliquer le besoin, le SQL dynamique est parfois interdit sur certains sites de production, et créer une table dynamiquement peut présenter des inconvénients (études d'impact, problème de perfs si pas de stats....)
Bonjour,
Je prépare un projet de states avec R sur en prédiction de comportement des client. les donnés que j'ai sont en string.
Donc je dois créé des tables de correspondance.
C''est a dire si l'effectif de entreprise égale 50 donc dans la colonne 50 aura la valeur 1 et dans les colonnes 0.
Désolé mais je n'ai absolument rien compris
Pouvez vous donner des exemples précis de différentes entreprises (2 ou 3 différentes) et des tables correspondantes
Bonjour,
Certains SGBDR proposent malgré tout des solutions sans SQL Dynamique, comme par exemple sous SQL Server :
Bien sûr, cela ne concerne pas les contraintes, privilèges...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT TOP(0) * INTO TableCible FROM TableSource
Mais il faudrait en effet en savoir davantage sur le besoin (et connaitre le SGBDR). J'ai l'impression que des vues seraient plus adaptées...
C'est Bon j'ai trouvé la solution mais avec PHP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 $sql = "select distinct(".$champ.") as tr from iris_ventes"; $response_req = sqlsrv_query($conn,$sql)or die(sqlsrv_errors()); while( $requeste_req = sqlsrv_fetch_array( $response_req, SQLSRV_FETCH_ASSOC) ) { $colomnes[] = $requeste_req['tr']; } $sql5 = "CREATE TABLE ".$champ." ( "; for ($i = 0; $i < $nombre_colonnes; $i++) { $sql4[$i]= str_replace(' ', '_', $colomnes[$i]); //$sql4.= str_replace(' ', '_', "D".$colomnes[$i]." nvarchar(255),"); $sql5 .= "E".$sql4[$i]." int,"; } $sql5 .= ");";
Je n'ai toujours pas compris le besoin fonctionnel, mais je constate que votre script va créer une table dont toutes les colonnes sont de type varchar(255), c'est à dire notamment la PK
Il n'y a pas non plus de limite sur le nombre de colonnes, vous risquez donc en plus d'avoir des tables obèses
Quel sera le contenu de ces tables ? combien y aura-t- il de lignes ? qu'allez vous faire comme types de requêtes avec ?
La durée des traitements risque d'être insupportable !
Ragheb_dev, êtes vous là ? des explications sur la nature du besoin m'auraient fortement intéressé !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager