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 :

Problème avec requête SQL


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut Problème avec requête SQL
    Bonjour,

    J'utilise présentement Access 2003 pour stocker les données d'un questionnaire. Le questionnaire contient plus d'une centaine de questions (réponse OUI / NON).

    Je fais une requête SQL pour obtenir seulement les questions qui ont été répondues par OUI (1). J'utilise le OR. Voici la structure utilisée pour mon where :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    WHERE (((TBL_AUDIT_ARTICLE9.[9_1_1])=1))
       OR (((TBL_AUDIT_ARTICLE9.[9_1_2])=1))
       OR (((TBL_AUDIT_ARTICLE9.[9_2_1])=1))
       OR (((TBL_AUDIT_ARTICLE9.[9_2_2])=1))
       OR (((TBL_AUDIT_ARTICLE9.[9_2_3])=1))
       OR (((TBL_AUDIT_ARTICLE9.CR9_1_1)=1))
       OR (((TBL_AUDIT_ARTICLE9.CR9_1_2)=1))
       OR (((TBL_AUDIT_ARTICLE9.CR9_2_1)=1))
       OR (((TBL_AUDIT_ARTICLE9.CR9_2_2)=1))
       OR (((TBL_AUDIT_ARTICLE9.CR9_2_3)=1));
    Ça fonctionne, mais comme j'ai plus d'une centaine de questions... je me demandais s'il y avait pas un moyen d'effectuer le même travail, mais en plus simple. L'idée est de simplement éliminer les enregistrements qui n'ont pas de réponse positive (OUI).

    Merci!

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    On peut raccourcir la syntaxe avec un IN (limité en nombre d'arguments, je ne connais pas celle-ci sur Access 2003) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE 1 in ([9_1_1], [9_1_2], [9_2_1], [9_2_2], [9_2_3], ...)

  3. #3
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Merci pour la réponse. Par contre, je ne pourrai l'essayer avant lundi prochain. Je donne un retour le plus rapidement possible. Si quelqu'un peut le confirmer avant, c'est tant mieux.

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Il y a surtout un gros problème de conception !
    Tu ne devrais pas avoir une question par colonne dans une seule table mais une table de questions et une table de réponses. Ta requête serait alors beaucoup plus simple et ta BDD réutilisable quel que soit le nombre de questions.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    En partant du model Waldar, si tu as un problème avec le nombre d'arguments acceptés, et si la colonne ne contient pas de NULL et si NON vaut 0...
    (Ca fait beaucoup de si )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE [9_1_1]+[9_1_2]+[9_2_1]+[9_2_2]+[9_2_3]+... >= 1

  6. #6
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Merci CinePhil. Je vais plutôt créer une table pour récupérer les réponses. Par contre, il ne s'agit pas d'un questionnaire où l'utilisateur clique sur un bouton 'envoyer' et puis voilà. Il s'agit plutôt d'un questionnaire de travail pour une évaluation. On peut y retourner comme on veut.

    Donc, je pourrais créer une table REPONSE et forcer l'utilisateur à cliquer sur un bouton 'envoyer' lorsqu'il veut obtenir les réponses positives. Toutefois, cette table devra être vidée et remplie de nouveau à chaque clic.

    Est-ce que cela se tient?

    Par curiosité, je vais également tester ton idée pacmann.

    Merci!

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

Discussions similaires

  1. [SQL] Problème avec requête SQL
    Par Kenya dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/01/2008, 22h13
  2. Problème avec requête SQL dans VBA
    Par Mimisio dans le forum VBA Access
    Réponses: 10
    Dernier message: 13/07/2007, 11h00
  3. [SQL] problème avec requête sql
    Par belakhdarbts10 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/05/2007, 11h58
  4. probléme avec requête SQL
    Par richard60 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/03/2007, 18h18
  5. Problème avec requête SQL avec variables
    Par harry25 dans le forum ASP
    Réponses: 1
    Dernier message: 03/01/2007, 03h41

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