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

Requêtes et SQL. Discussion :

répéter x fois une requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut répéter x fois une requête
    Bonjour,
    Je récupère dans une table, les données d'un QCM contenant une centaine de champs chaque champ "résult" peux contenir la valeur 0, 1 ou 2.
    Pour chaque champ "résult" je crée un champ "comment" dans lequel une requête affecte un commentaire: mauvais, moyen ou bon.
    Le problème est que je dois répéter une centaine de fois cette requête pour chacun des champs de ma table.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE tblagence SET tblagence.commentT1 = Switch([tblagence]![resultT1]=0,"Mauvais",[tblagence]![resultT1]=1,"Moyen",[tblagence]![resultT1]=2,"Bon");
    Il y aurait-il un moyen d'automatiser ma requête de manière à updater l'ensemble des champs.
    Merci pour votre aide.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    oui mais je ne vois pas l'utilité de la chose

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    désolé, mais je débute, j'ai surement du me compliquer la vie...
    peux-tu appronfondir ?

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Re bonjour,
    j'ai dit une connerie ?

  5. #5
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Tu as exécuté ta requête pour voir le résultat ??

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    merci pour ta réponse,
    oui ça fonctionne, mais je dois la répéter pour environ 100 questions ..
    c'est là mon problème.

  7. #7
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Tu dois avoir un problème de conception alors...

    Je récupère dans une table, les données d'un QCM contenant une centaine de champs
    Ce ne serait pas plutôt des enregistrements ??

    Quelle est la structure de tes tables ?

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    en effet ce sont des enregistrements issue d'un fichier .csv
    la structure est la suivante (pour les réponses)

    resultT1 - numérique - valeur 0,1 ou 2
    commentT1 - texte - j'execute ma requête de mise à jour car cet enregistrement est vide

    resultT2 à résutT90
    commentT2 à commentT90
    ce qui m'oblige à répéter x fois ma requête en modifiant son contenu.

    je pense qu'il y a un moyen plus simple, mais ne trouve pas.
    j'espère avoir été clair?
    merci d'avance.

  9. #9
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    J'ai du mal à saisir

    Result1 comment1 c'est un enregistrement
    Result2 comment2 c'est un enregistrement
    ....
    Result90 comment90 c'est un enregistrement

    Donc tu as 1 ligne dans ta table

    Je ne comprend pas bien là....

    Tu devrais avoir 2 champs (Result et Comment) et 90 enregistrements.

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    je m'explique...désolé la machine à café est en panne
    j'ai 90 champs champs dans ma table correspondants aux 90 enregistrements exportés
    resultT1 à resultT90, chacun contient une valeur num (0,1,ou 2)
    pour chacun des ces champs je souhaite créer un champ commentaire
    commentT1 à 90 contenant un commentaire (mauvais, moyen ou bon)
    j'ai donc crée une requête de mise à jour avec comme critère le SQL cité plus haut.
    ça marche pour un ou deux mais comment automatiser pour l'ensemble des champs.
    j'ai le sentiment de me compliquer la tâche

  11. #11
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Citation Envoyé par DuDe92
    j'ai 90 champs champs dans ma table correspondants aux 90 enregistrements exportés
    Déjà : là, il n'y a rien qui te choque ????
    Moi si.

    resultT1 à resultT90, chacun contient une valeur num (0,1,ou 2)
    pour chacun des ces champs je souhaite créer un champ commentaire
    commentT1 à 90 contenant un commentaire (mauvais, moyen ou bon)
    j'ai donc crée une requête de mise à jour avec comme critère le SQL cité plus haut.
    ça marche pour un ou deux mais comment automatiser pour l'ensemble des champs.
    j'ai le sentiment de me compliquer la tâche
    Moi j'ai surtout le sentiment que tu n'importes pas correctement tes données.

    Tu ne devrais avoir dans ta table que 2 champs comme je te l'ai dit plus haut avec dans cette table 90 enregistrements.

    Une fois que tu auras une structure de ce type, tu exécuteras ta requête et tu auras le résultat escompté pour les 90 enregistrements.

  12. #12
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Effectivement je dois mal m'exprimer...ou comprendre
    je met en piece jointe une copie de la structure de ma base après importation
    j' ai viré la plupart des 90 champs.
    dans mon exemple ils se nomment RéponseQx
    Puis ma requête de mise à jour qui affecte les commentaires.
    J'espère que ce sera plus "parlant"
    en tout cas, merci pour tes réponses.
    Fichiers attachés Fichiers attachés

  13. #13
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Je ne peux pas l'ouvrir (access 97)

  14. #14
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    voila, j'espère que c'est bon ...
    Fichiers attachés Fichiers attachés

  15. #15
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Et à l'importation les données sont les unes à la suite de autres ??
    Q1 C1 Q2 C2 ?
    Si oui il faut revoir ton importation.
    Crées une fonction qui fera ça correctement.

    Par rapport aux informations présentes dans la base j'en déduis que :
    Une personne fait un ou plusieurs questionnaires
    un questionnaire est fait par une ou plusieurs personnes

    Un questionnaire aborde un theme
    Un theme est abordé par un ou plusieurs questionnaire

    Une question apparait dans 1 et un seul questionnaire
    Un questionnaire contient une ou plusieurs questions

    d'où les tables :
    Personne(IDNom, Nom, Prenom, Metier)
    Questionnaire(IDQuestionnaire, Questionnaire)
    Theme(IDTheme, Theme)
    Question(IDQuestion, Question)

    Ensuite tu fais les associations.
    Après tu vas créer la fonction qui va importer tes données.

    Je pense qu'avant de créer cette requête tu devrais revoir ton MCD.

  16. #16
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    en effet les données issues du .csv arrivent à la suite
    chaque lignes correspond à un nom et aux questions auquelles il a répondu (toutes) comme ceci:
    nom1, Q1,Q2....
    nom2, Q1,Q2....
    je n'exploite que les réponses lié au nom (pour le reste pas de prob)
    c'est pour cela que je crée une nouvelle table par mise à jour avec les champs
    C1,C2... ou je veux placer le commentaire.
    je dois avouer que je débute et que je me sert de l'aide et des FAQ pour avancer....mais c'est pas gagné
    le but étant de sortir un état pour chaque nom avec, en face de chaque question, un commentaire et non une valeur ( pas très parlante)

Discussions similaires

  1. Répéter 2 fois une animation
    Par manuleperso dans le forum Flash
    Réponses: 0
    Dernier message: 08/11/2011, 17h34
  2. Réponses: 5
    Dernier message: 24/08/2006, 15h00
  3. Sous-requête excutée plusieurs fois dans une requête
    Par sheridan31 dans le forum Oracle
    Réponses: 8
    Dernier message: 03/07/2006, 16h18
  4. [MySQL] Réutiliser 2 fois le résultat d'une requête
    Par FrankOVD dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 05/05/2006, 17h08
  5. Réponses: 2
    Dernier message: 22/11/2005, 14h06

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