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

Schéma Discussion :

Problème de requêtes SQL imbriquées


Sujet :

Schéma

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 22
    Points : 27
    Points
    27
    Par défaut Problème de requêtes SQL imbriquées
    Bonjour tout le monde

    Je suis nouveau sur ce forum, alors si jamais l'allure de mes messages ne convient pas, soyez indulgent.

    Bon voici mon problème. Manquant peut-être d'un peu d'expérience en SQL je bloque sur une requête assez complexe que je dois réaliser. Pour commencer je dois réaliser cette requête par SQL . En fait cette requête sera basée sur l'extraction de données dans 5 tables différentes, comme de raison je voudrais tenter de faire une seule et unique requête pour récupérer les données voulues, si c'est faisable bien entendu.

    Pour faire une histoire courte, je dois gérer les centres des votes dans ma wilaya.
    J’ai besoin d’imprimer les listes pour chaque centre. Voici donc les tables et les champs que j’ai utilisé. « c’est ma conception »
    ---------------------------
    DAÏRA
    Ndaira
    Nomdaira
    Ncommune
    -----------------------------
    COMMUNE
    Ncommune
    NomCommune
    ------------------------------
    CENTRE
    Nomcentre
    Chef Centre
    Adjoint1
    Adjoint2
    Adjoint3
    -------------------------------
    BUREAU
    Présidant
    Secrétaire
    Assesseure
    Suppléant1
    Suppléant2
    ---------------------------
    PERSONNE
    Qualification
    NomPrenom
    DateNaissance
    Observation

    Comment obtenir les listes de tous les bureaux d’un centre X dans le Daira X dans la commune X
    voir la liste ;

    Daira x
    Commune X
    Centre x
    Nombre bureaux :nb
    Chef x
    Adjoint1 X
    Adjoint2 X
    Adjoint3 X
    table
    voire la Miniatures attachées


    J'ai tenté désespérément de réaliser cette requête, mais je n'arrive pas à trouver la bonne solution. Alors si quelqu'un parmi vous pourrait m'indiquer la marche à suivre, ça me serait d'un grand secours car je vais avoir plusieurs requêtes du même genre à réaliser.

    Merci d'avance pour vos savantes réponses.
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Le descriptif de vos table ne permet pas de faire le lien entre un centre et une commune.
    Ni entre un bureau et ...?

    A partir de là on ne peut pas faire grand chose

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Et je rajouterais que, bien que je ne connaisse pas la définition de la (du?) DAIRA, je la suppose être une entité suppérieure à la commune.

    Il y a plusieurs communes dans une Daira, c'est bien ça ?

    Si c'est la cas, le lien entre Daira et commune est fait à l'envers. C'est la commune qui doit pointer vers une Daira, et non pas la daira qui pointe vers une commune. Donc il ne faut pas mettre un NCommune dans la table Daira, mais plutôt un NDaira dans la table commune.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,

    Comme problème de conception je vois aussi pour la table Personne,
    il ne semble pas y avoir d'identifiant, il vaut mieux séparer le nom du prénom. car s'il est très simple de les présenter concaténer, il est très compliquer de les découper après coup.

    Par ailleurs pour la table Bureau, qu'est-ce qui se passe lorsqu'il y a plus de 2 suppléants.
    Est-ce que le bureau n'a pas de caractéristiques autres que les noms des présidents assesseur, et suppléants, comme un nom, une adresse, une relation avec une daira, avec un centre.
    Personnellement je créerai une table bureau avec les caractéristiques communes, et une table d'association BureauPersonnel.
    La table BureauPersonnel aurait une structure du genre.
    NBureau
    NPersonne
    NTypePersonnel
    RangPersonnel entier

    Avec une clé étrangère de BureauPersonnel sur personne.
    une autre clé étrangère sur la table TypePersonnel
    TypePersonnel de structure
    NTypePersonnel
    LibelleTypePersonnel
    exemple de valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    NTypePersonnel LibelleTypePersonnel
    1              Chef Centre
    2              Adjoint
    3              Président
    4              Secrétaire
    4              Assesseur
    De même tu rajoutes une clé à ta table Centre (NCentre Par exemple), tu supprimes les informations de personnes de cette table, tu y rajoute les relations avec Daira et ou Commune et tu crées une table CentrePersonnel de structure
    NCentre
    NTypePersonnel
    NPersonne.

    Cordialement
    Soazig

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Pour résumer les interventions des précédents forumeurs, il faut revoir le modèle de données, en commençant par écrire des règles de gestion claires qui décriront les associations entre daira, commune, centre, bureau et personne.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

Discussions similaires

  1. Problème de requêtes SQL imbriquées
    Par leroimarco dans le forum PureBasic
    Réponses: 9
    Dernier message: 14/07/2011, 11h57
  2. Problème de requête SQL avec instruction TRANSFORM
    Par Nosper dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/06/2005, 16h15
  3. [SQL] Problème de requête SQL de plus de 8060 caractères ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 06/04/2005, 15h07
  4. [SQLserver2000][SQLServer CE] problème de requête SQL
    Par JBernn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/01/2005, 09h29
  5. Problème de requète SQL dans un Requery
    Par Keraccess dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/10/2004, 14h58

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