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 :

Creation de table compliquée


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2013
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 25
    Points : 26
    Points
    26
    Par défaut Creation de table compliquée
    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

  2. #2
    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 803
    Points
    30 803
    Par défaut
    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.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2013
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 25
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Ce type d'opération ne peut être effectué qu'avec du SQL dynamique, pas par une requête directe.
    Et comment faire.
    Et ce que vous avez un exemple de code.

  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
    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....)

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2013
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 25
    Points : 26
    Points
    26
    Par défaut
    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.

  6. #6
    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
    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

  7. #7
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Citation Envoyé par al1_24 Voir le message
    Ce type d'opération ne peut être effectué qu'avec du SQL dynamique, pas par une requête directe.
    Certains SGBDR proposent malgré tout des solutions sans SQL Dynamique, comme par exemple sous SQL Server :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT TOP(0) *
    INTO TableCible
    FROM TableSource
    Bien sûr, cela ne concerne pas les contraintes, privilèges...
    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...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Février 2013
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 25
    Points : 26
    Points
    26
    Par défaut
    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 .= ");";

  9. #9
    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
    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 !

  10. #10
    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
    Ragheb_dev, êtes vous là ? des explications sur la nature du besoin m'auraient fortement intéressé !

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

Discussions similaires

  1. probleme de creation de table
    Par donny dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 30/05/2005, 08h54
  2. syntaxe creation de table
    Par donny dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 21/05/2005, 14h26
  3. creation de table d'Historisation
    Par devalender dans le forum Débuter
    Réponses: 2
    Dernier message: 18/10/2004, 13h58
  4. Creation de table multi base
    Par baboune dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 20/02/2004, 09h23
  5. Creation de table, caractère non reconnu
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 17/02/2004, 13h28

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