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 :

Requete d'une valeur sur de nombreux champs


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Requete d'une valeur sur de nombreux champs
    Salut tout le monde,

    J'ai un petit problème, je vous explique:

    J'ai une table departement avec comme champs: id,id_prestataire,01,02,03... jusqu'à 95, c'est à dire tous les départements.

    Si un client travaille dans le 75,77 et 93 je mets la valeur 1 dans ces champs.

    Je voudrais faire une requete pour afficher, pour un id-->tous les champs qui ont la valeur 1.

    Pour l'instant ma seule solution est de faire une tres longue requete en vérifiant chacun des champs...ca fait un peu long

    Merci aux specialistes de me dire s'il existe un moyen de faire cette requete plus simplement.

  2. #2
    jnore
    Invité(e)
    Par défaut
    A mon avis ta table est mal conçue!
    Il aurait fallu un seul champ département et insérer le numéro du département dans le champ en question.
    Là tu te compliques.

  3. #3
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 738
    Points
    1 738
    Par défaut
    C'est vrai que ça a l'air mal conçu, une table n'est pas destinée à être une matrice de 0 ou de 1

  4. #4
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Merci les gars, je me rends compte qu'effectivement c'est mal conçu.

    J'ai deja ma table prestataire avec la fiche d'identité du presta. Je pense que je vais faire une table departement avec id, id_presta, choix_departement1,choix_departement2, choix_departement3, choix_departement4, choix_departement5.

    Je pense que pour mon cas, un prestataire ne sera pas present dans + de 5 departements.
    Donc quand un prestataire sera present dans le 75 et le 91, je remplirais les choix_departement1 et choixdepartement2 avec les valeurs 75 et 91.

    Vous pensez que c'est judicieux ?

  5. #5
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 738
    Points
    1 738
    Par défaut
    Non
    Si tu dois trouver les départements pour un prestataire, tu vas devoir à chaque fois lire les 5 colonnes pour voir s'ils sont à zéro ou à 1. Une table n'est pas une matrice de 0 ou de 1. Tu vas vite te retrouvé embêté et à faire des requêtes de fou pour pas grand chose

    Une solution simple si tu ne veux pas faire une usine à gaz serait de faire :

    Une table prestataire
    id_presta | nom
    1 | dupont
    2 | durand
    3 | martin

    Une table de correspondance dep_presta dont la colonne id_presta est clé étrangère sur la même colonne de la table prestataire, et dont la colonne code_dep contient les numéros des départements
    Si par exemple dupont est associé aux départements 1,2,3, durand au 3 et martin aux 1 et 2, cette table contiendrait les lignes suivantes :
    id_presta | code_dep
    1 | 1
    1 | 2
    2 | 3
    3 | 2
    3 | 1

    Trouver tous les départements pour le prestataire 'DURAND' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT d.code_dep FROM dep_presta d, prestataire p WHERE p.id_presta = d.id_presta and p.nom = 'DURAND';
    Trouver tous les noms des prestataires pour le département 2 (Aisne) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT distinct p.nom FROM dep_presta d, prestataire p WHERE p.id_presta = d.id_presta and d.code_dep = 2

  6. #6
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Ah oui c'est vrai que c'est beaucoup mieux !!

    Merci, je vais tenter ca cet aprem !

Discussions similaires

  1. Occurence d'une valeur sur deux champs de la même table
    Par arihane dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/02/2015, 20h30
  2. afficher une valeur unique d'un champs requete
    Par salfati dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 06/11/2010, 09h46
  3. [Toutes versions] Affecter une valeur sur formulaire à un champ du sous formulaire
    Par jerem2007 dans le forum IHM
    Réponses: 1
    Dernier message: 18/03/2010, 19h22
  4. une requete effectuant une recherche sur tous les champs
    Par raynor911 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/02/2006, 15h06
  5. Réponses: 3
    Dernier message: 10/08/2005, 11h11

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