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

WinDev Discussion :

Somme des champs [WD22]


Sujet :

WinDev

  1. #61
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 801
    Points : 5 245
    Points
    5 245
    Billets dans le blog
    1
    Par défaut
    Tu veux, avec une seule requête
    1) Saisir les mouvements
    2) Afficher l'inventaire

    Et je dois en oublier
    Ne serait-ce pas plus simple de scinder les deux opérations ?
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  2. #62
    Nouveau Candidat au Club
    Femme Profil pro
    ide
    Inscrit en
    Octobre 2019
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ide
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2019
    Messages : 191
    Points : 0
    Points
    0
    Par défaut Ligne ne s'affiche pas
    Citation Envoyé par hilander Voir le message
    Bonjour tbc92,

    Voici la dernière version de la requête stock :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT   A.IDProduits , A.Produits, A.Conditionnement,
    COALESCE (qstock,0) AS qstock , COALESCE( B.qlivr,0) AS qlivr , COALESCE( C.qsor,0) AS qsor , COALESCE( D.qregul,0) AS qregul ,  A.Prix_Unitaire ,
    COALESCE(D.qstock,0) + COALESCE(D.qregul,0) + COALESCE( B.qlivr,0)  - COALESCE(C.qsor,0) AS Stock_Final ,
    (COALESCE(D.qstock,0) + COALESCE(D.qregul,0) + COALESCE( B.qlivr,0)  - COALESCE(C.qsor,0) ) * A.Prix_Unitaire  AS Valeur_Stock
    FROM Produits A
    OUTER JOIN ( SELECT IDProduits, SUM(Quantité_Livrée) AS qlivr FROM Livraisons GROUP BY IDProduits) B
    ON B.IDProduits = A.IDProduits
    OUTER JOIN  (SELECT IDProduits, SUM(Quantité_Sortie) AS qsor FROM Sorties GROUP BY IDProduits) C
    ON C.IDProduits = A.IDProduits
    OUTER JOIN  (SELECT IDProduits, SUM(Régul_Stock) AS qregul , MAX (Stock_Initial) AS qstock, MAX(Stock_Initial) AS qstock FROM Régularisation GROUP BY IDProduits) D
    ON D.IDProduits = A.IDProduits

    Pour ce qui est des deux requêtes que tu m'as demandé de tester, elles affichent un résultat conforme à ce que j'attends, donc cela est bon et à priori on a plus à y revenir.
    Par contre j'ai un problème d'affichage de ligne comme je te l'expliquais précédemment, je te mets les copie d'écran :
    J'ai une livraison, dans mon exemple ( Gants T7 ) pour 15 unités, OK

    Pièce jointe 515692

    Dans la table stock final, cette ligne ne s'affiche pas

    Pièce jointe 515691

    J'ai parcouru divers sites pour trouver une solution dans la requête SQL sans résultat cohérent.

    Merci beaucoup
    Je réponds à moi même car j'en suis toujours au même point avec mon projet, et ce malgré avoir chercher une solution possible sur PC Soft ou en SQL.
    Bref c'est le bazarre, enfin c'est le mien.

    Merci

  3. #63
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 050
    Points : 9 386
    Points
    9 386
    Par défaut
    Dans la requête, au lieu de outer Join, il faut mettre left join (ou peut-être left outer join, je n'ai pas vérifié).
    Dans l'esprit, c'est mieux. Mais je ne vois pas pourquoi ça solutionnerait ton problème.

    Il doit y avoir un truc caché dans tes fichiers que tu ne montres pas.

    Quelle est la requête qui permet d'afficher les 4 lignes (Detail des livraisons) ? Ca va peut-êrte donner des idées.

    Sinon, autre piste, moyennement crédible mais on ne sait jamais : Es-tu sûr que la base de données attaquée dans les 2 cas est la même ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #64
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 801
    Points : 5 245
    Points
    5 245
    Billets dans le blog
    1
    Par défaut
    Plus je me penche sur le problème, plus je vois des choses étranges. J'ai l'impression que tu veux calquer le comportement de windev sur le comportement d'une feuille de calcul.
    Dans un premier temps nulle part dans ton analyse je ne vois la quantité du stock d'un produit (c'est quand même gênant pour une applic de gestion de stock.)
    Pour avoir le stock (théorique) d'un produit, tu es obligé de passer par une requête très lourde.
    Pour caricaturer cela donne :
    -Bonjour M le Magasinier
    -Bonjour M le Client, que désirez vous ?
    -Je voudrais des savons
    -Je vais voir ce qui me reste M le client
    Ouverture du livre de stock à la page savon.
    En début d'année j'en avais 10, j'en ai acheté 20 puis 10 puis 5 puis 20, j'en ai vendu 5 puis 15 puis encore 5 et enfin 20, il m'en reste 20. Attendez, je vais en profiter pour voir à quel prix je vous les vends....

    Le fait d'inclure la quantité dans l'analyse permettrait de la mettre à jour à chaque mouvement, il en va de même pour la valorisation du stock.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  5. #65
    Nouveau Candidat au Club
    Femme Profil pro
    ide
    Inscrit en
    Octobre 2019
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ide
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2019
    Messages : 191
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Dans la requête, au lieu de outer Join, il faut mettre left join (ou peut-être left outer join, je n'ai pas vérifié).
    Dans l'esprit, c'est mieux. Mais je ne vois pas pourquoi ça solutionnerait ton problème.

    Il doit y avoir un truc caché dans tes fichiers que tu ne montres pas.

    Quelle est la requête qui permet d'afficher les 4 lignes (Detail des livraisons) ? Ca va peut-êrte donner des idées.

    Sinon, autre piste, moyennement crédible mais on ne sait jamais : Es-tu sûr que la base de données attaquée dans les 2 cas est la même ?
    Bonjour tbc92,

    Ta solution de mettre left Join était la bonne et après avoir effectué plusieurs test, je peux dire que tout fonctionne comme je le souhaitais.
    Je te remercie beaucoup, ainsi que voroltinquo et j'en oublie surement.
    Il ne me reste plus qu'a rendre cette appli autonome
    Encore merci à vous tous

  6. #66
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 050
    Points : 9 386
    Points
    9 386
    Par défaut
    Bon, tant mieux.
    C'est un peu bizarre, puisque OUTER JOIN est sensé renvoyer autant de lignes que LEFT JOIN, et même plus dans certains cas.

    Peut-être que dans le cas de jointures sur 4 tables comme c'est le cas ici, il y a une explication logique pour que OUTER JOIN renvoie moins de lignes que LEFT JOIN.
    Si quelqu'un sait, ça serait intéressant de partager.

    Ou peut-être que dans le SQL de PCSoft, il y a un bug et OUTER JOIN avec 4 tables, il se plante. Je n'utilise pratiquement jamais HFSQL, donc je n'ai pas les moyens tout prêts pour vérifier.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

+ Répondre à la discussion
Cette discussion est résolue.
Page 4 sur 4 PremièrePremière 1234

Discussions similaires

  1. la somme des champs
    Par petchy dans le forum Access
    Réponses: 9
    Dernier message: 11/12/2006, 10h08
  2. [reporting services] Somme des champs
    Par Wells dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/08/2006, 11h28
  3. rave report (somme des champs par pages)
    Par mozcity dans le forum Composants VCL
    Réponses: 3
    Dernier message: 17/03/2006, 21h51
  4. somme des champs null
    Par s.rais dans le forum Access
    Réponses: 4
    Dernier message: 09/02/2006, 09h05
  5. Somme des champs ? existe t il une fonction ...
    Par dark_vidor dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/01/2006, 11h57

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