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 :

réorganiser une table avec des variables dynamiques


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut réorganiser une table avec des variables dynamiques
    Bonjoir,

    J`ai une question que je ne peux pas solutionner.
    (la base des données est MS Access et j`essaye de programmer avec SQL en Access)

    Ma table actuelle est construit comme suit: (c'est seulement un exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     ID  REP  QUEST  CAR   VAL
    1    1      1         3     Pomme
    2    1      1         7     Banane
    3    1      2         1     Oui
    4    2      1         1     Prune
    5    2      1         4     Crassane
    6    2      1         7     Banane
    7    2      2         2     Non
    Et je voudrais changer en forme suivante:
    (la variable VAL n`est pas importante en ce moment et pour ce question, mais je voudrais indiquer les valeurs pour improver votre compréhension)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     ID--REP----Q1C1---Q1C2---Q1C3---Q1C4......Q1C7-----Q2C1---Q2C2
    1    1        0      0      1(Po)   0       1(Ba)    1(Oui)0       
    2    1        1(Pr) 0      0         1(Cr)  1(Ba)    0      1(Non)
    Le problème:

    En phase un, SQL doit scanner la premier table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT * FROM fruits_caduques;
    En phase deux, SQL doit écrire dans la table nouvelle:
    (et c'est la bravade grande)

    Ensemble la solution peut faire comme ci (approx):

    FOR i=1 TO XXX (la valeur de la ID dernièrement qui je peux trouver manuellement)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     SELECT * FROM fruits_caduques WHERE ID=i;
    q=QUEST; 
    c=CAR;
    INSERT INTO fruits_nouvelles (Q[q]C[c]) VALUES (1);
    C`est seulement la structure générale et j`ai deux questions:

    Est-que c`est possible? (Q[q]C[c])
    Et est-que c`est possible de programmer en SQL, parce que je n`ai jamais écouté de programmer avec des affilages (FOR TO) et des variables (q=QUEST) en SQL?!
    Et si ce n`est pas possible - ou est-que on faut programmer la solution?
    (Remarque: c`est une base MS Access ? VBA ?)

    Merci beaucoup pour chacun renseignement,

    Stefan

  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 789
    Points
    30 789
    Par défaut
    La manipulation de noms de colonnes telle que vous le présentez n'est pas possible en SQL pour la simple raison que la structure d'une table est fixe et que le nombre de colonnes ne peut varier à votre convenance.

    Par ailleurs, ce serait bien dommage d'abandonner une structure de table normalisée, pour une autre qui l'est nettement moins.

    Si toutefois cette nouvelle structure vous est indispensable, il ne reste plus qu'à programmer en VBA.
    Une solution est peut-être aussi à chercher du côté de la clause PIVOT propre à ACCESS.
    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
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    marci beaucoup,

    c`est un peut décavant


    mais je moi demande, si ce problem est vraiment rare.

    en general:

    C' est déjà une tâche ou on faut changer la structure ou on a des respondents dans la ligne et des questions dans la ligne (mais on ne peut pas analyser telle table en SPSS ou en SAS)

    et je voudrais restructurire la table ou on a des respondents dans la ligne et les réponses dans les clonnes.

Discussions similaires

  1. [MySQL] Alimenter une table avec des champs generés dynamiquement
    Par m_jaz3 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/05/2013, 22h23
  2. Réponses: 4
    Dernier message: 22/11/2007, 19h23
  3. Méthode GET > Récupération avec des variables dynamiques
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 30/03/2007, 15h28
  4. [D7],[ADO] : ordonner une table avec des champs référencés
    Par iam dans le forum Bases de données
    Réponses: 3
    Dernier message: 07/11/2006, 21h36
  5. Faire une boucle avec des variables vides ?
    Par byloute dans le forum Linux
    Réponses: 5
    Dernier message: 23/02/2006, 09h33

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