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 :

SQL - table mère-filles


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en technologies

    Informations forums :
    Inscription : Février 2020
    Messages : 5
    Par défaut SQL - table mère-filles
    bonjour le groupe,

    je bute sur une requête SQL pour extraire un prix global.

    CONTEXTE : 2 tables, la première est l'inventaire de tout le magasin [T_MATERIAUX_MASTER] ; la deuxième est une table de jonction [T_JCT] pour les items "mère" avec ses "filles" et leurs quantités

    Dans la table inventaire, j'ai un champ qui défini si l'item possède des enfants [T_MATERIAUX_MASTER.[JCT_VERS_FILLES]] (OUI/NON)

    OBJECTIF : obtenir le prix de l'item "mère" (somme des quantités "filles" * prix)

    Ci-joint, une vue de mes différentes tables (pas réaliste pour la requête, mais le visuel parle mieux)

    Nom : SQL-MERE_FILLES.jpg
Affichages : 1589
Taille : 83,0 Ko

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 717
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Visiblement, nous sommes ici sous ACCESS puisque le clone T_MATERIAUX_MASTER_1 est une aberration spécifique à ce SGBD qui ne sait pas représenter proprement une association reflexive.

    Plusieurs choses ne vont pas dans le modèle de données.

    T_JCT est ce qu'on appelle une table associative, car elle est issue d'une association reflexive du modèle conceptuel : assocation de T_MATERIAUX_MASTER sur elle même
    A priori, c'est un cas classique de nomenclature composant/composé.

    Ce faisant, T_JCT ne devrait pas avoir d'identifiant propre, la colonne T_JCT.id est donc à virer, sauf si ACCESS exige cette colonne (ce qui serait incongru, mais vu la piètre qualité de ce SGBD ça ne m'étonnerait qu'à moitié). La PK de cette table doit être composée du couple (T_MATERIAUX_MASTER.ID, T_MATERIAUX_MASTER_1.id)
    Et il ne faut pas non plus d'attribut JCT_vers_filles ! C'est une redondance avec la présence ou pas d'une foreign key

    Le bon modèle de données (simplifié aux attributs essentiels) est :

    Nom : MCD.png
Affichages : 1406
Taille : 10,3 Ko

    Ce qui donne les tables suivantes :

    Nom : MLD.png
Affichages : 1442
Taille : 3,9 Ko

    À partir de là, une requête il faut faire une requête récursive pour récupérer toute la décomposition arborescente d'un composé.
    Mais si c'est bien d'ACCESS qu'il s'agit, les requêtes récursives ne sont malheureusement pas possibles, vous n'aurez donc que le premier niveau de composé, par une simple jointure

    Si c'est pour un usage privé, vous aurez tout à gagner à remplacer ACCESS par un SGBD moderne, il en existe des gratuits autrement plus performants et riches en fonctionnalités .

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en technologies

    Informations forums :
    Inscription : Février 2020
    Messages : 5
    Par défaut
    merci pour cette réponse,

    en fait, je n'utilise pas Access pour les requêtes (seulement pour stockage des informations), mais ce sont des macros SQL sous Excel qui alimentent/extraient les données. Il y a une dizaine d'utilisateurs, et beaucoup n'ont pas Access.

    Je prends note des indications et reformaterai mes tables.

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/12/2012, 14h40
  2. Clef primaire unique pour table mère et fille
    Par K-LiBR3 dans le forum SQL
    Réponses: 5
    Dernier message: 07/11/2011, 18h40
  3. Spliter une ligne excel en 1 table mère et des tables filles
    Par Sfeabg dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 15/09/2009, 18h22
  4. [MySQL] Listing des entrées d'une table fille depuis listing table mère
    Par Romain_33 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/05/2009, 01h48
  5. Réponses: 14
    Dernier message: 29/11/2007, 08h47

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