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

PostgreSQL Discussion :

Problème de jointures


Sujet :

PostgreSQL

  1. #1
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut Problème de jointures
    Bonjour,

    J'ai un peu de mal à saisir les jointures, je fais donc appel à vos lumières

    J'ai 3 tables, voir la capture d'écran :

    Nom : Capture BDD.PNG
Affichages : 221
Taille : 31,6 Ko

    Ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT public.mouvement.datemouvement, public.stock.num_lot, public.stock.poids, public.stock.dluo, public.stock.dlc, public.stock.quantite, public.stock.idstock, public.stock.idproduit 
    FROM public.stock INNER JOIN public.produit ON (public.stock.idproduit = public.produit.idproduit) INNER JOIN public.mouvement ON (public.produit.idproduit = public.mouvement.idproduit)
    WHERE public.stock.idproduit = '1'
    Le problème est que j'ai des doublons et que j'ai du mal à comprendre les jointures.

    Voici mon résultat :
    Nom : Resultat requete.PNG
Affichages : 193
Taille : 7,3 Ko

    Comme vous pouvez voir j'ai plusieurs fois le même IDStock alors que je souhaite l'avoir de façon unique et donc 2 lignes pas 4.

    Le but de la requête est de me remonter, pour un produit donné, la quantité en stock.

    Je vous remercie.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    Vous avez visiblement deux lignes dans la table mouvement pour ce produit, et deux lignes dans la table stock pour ce même produit...
    Il est donc logique d'obtenir quatre lignes au final.

    Vous dites n'en vouloir que deux mais... lesquelles ? vous n'avez pas indiqué ce que vous souhaitiez comme résultat.

  3. #3
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    Je veux comme résultat une ligne par IDStock c'est à dire 6 et 7.

    Encore merci

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    et comme mouvement a rattacher respectivement a 6 et 7 ?

  5. #5
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    Les mouvements en date du 25/02/2016 et du 11/03/2016

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    et pourquoi pas l'inverse ?

  7. #7
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    pourquoi pas.

    Je ne vois pas la différence

  8. #8
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    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 133
    Points : 38 555
    Points
    38 555
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par thierrybatlle Voir le message
    Le but de la requête est de me remonter, pour un produit donné, la quantité en stock.
    Il semble tout simplement, comme c'est souvent le cas en gestion de stock, que votre stock détaille la quantité par n° de lot distinct.
    Il vous suffit donc, si vous n'avez pas besoin du détail par lot, de cumuler le stock a priori par code article (idproduit) et non idstock
    A vous de trancher en fonction de votre réel besoin fonctionnel

    Ce qui donnerait ce type de requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Select  PR.codeproduit
           ,sum(ST.quantite)
    from  produit     as PR
    inner join stock  as ST
       on ST.idproduit = PR.codeproduit
    group by   PR.codeproduit
    Edit : compte tenu du besoin exprimé et des descriptions des tables, vous n'avez pas besoin d'accéder à la table mouvements

Discussions similaires

  1. Problème de jointure de tables
    Par AurelBUD dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/04/2005, 16h27
  2. Probléme de jointure
    Par Ajrarn dans le forum Langage SQL
    Réponses: 14
    Dernier message: 24/02/2005, 14h57
  3. Vraisemblable problème de jointure
    Par pimousse76 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 15h34
  4. [MS Access] Problème de jointure
    Par Erakis dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/02/2005, 21h15
  5. Problème de jointure ?!
    Par ebaynaud dans le forum Langage SQL
    Réponses: 8
    Dernier message: 03/11/2004, 11h27

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