WDForge - Forum

Le forum des développeurs professionnels WinDev ®

Requête union

Discussion sur WinDev®

Message non lupar 2109 » Jeu 11 Fév 2016 09:56

Bonjour

Je calcule le mouvement par un article depuis les lignes de ventes et les lignes achats, donc je crée une requête "lignes ventes"paramétrée par référence article et une requête "lignes achats" aussi par référence article.
La requête des ventes faire la somme des quantités vendues et l'autre fait la somme des quantité achetée.
puis j'affiche le résultat par un simple calcul Résultat = SommeQTeV - SommeQteA

Jusqu'à ici tout va bien, seulement pour accélérer un peu le traitement je voulais créer à partir de ces 2 requêtes une REQUÊTE UNION dans laquelle je regroupe ces 2 dernières en calculant Résultat à l'intérieure de la requête UNION

J'ai déjà créé ma requête UNION mais je ne sais pas comment j'insère la formule pour calculer le Résultat?

Merci de me donner une piste
2109
Stagiaire WDF
 
Messages: 3
Enregistré le: Sam 29 Aoû 2015 09:25

Message non lupar R&B » Jeu 11 Fév 2016 14:24

Bonjour

Vous avez omis de nous indiquer le code de votre requête pour que les participants du forum puissent vous aider à trouver une solution...

Néanmoins, vu que vous avez les achats comme des entrées de stock et les ventes comme des sorties, je vous invite à considérer la simple somme des entrée à laquelle vous ajouteriez la sommes des ventes multipliée par -1 afin d'en inverser le "sens".

Il suffirait sans doute de modifier votre requêtes des ventes en conséquence pour assurer l'addition des deux cumul dans la requête d'union...

C'est, avec vos éléments, la seule information que nous puissions vous fournir.
R&B
R&B
Administrateur WDForge
 
Messages: 12
Enregistré le: Dim 3 Mai 2015 18:12

Message non lupar 2109 » Jeu 11 Fév 2016 15:50

Bonjour M R&


Merci d'abord pour votre réponse, je crois que la requete union n'est pas la solution adéquate pour avoir accélerer l'affichage de calcule de stock. Donc j'ai envisagé de m'enrinter vers la solution de jointure.

je met se code suivant :

SELECT LigneVte.Reference,COALESCE(SommeQteV,0) - COALESCE(SommeQteA,0) // la comparaison sur SommeQteA et SommeQteV qui sont déjà vide

FROM ARTICLES

LEFT OUTER JOIN

(SELECT Reference,SUM(Quantite_Livr) AS SommeQteV FROM LigneVte GROUP BY Reference)

AS LigneVte

ON LigneVte.Reference = ARTICLES.Reference

LEFT OUTER JOIN

(SELECT Reference,SUM(Quantite_Livr) AS SommeQteA FROM FLigneAch GROUP BY Reference)

AS FLigneCdeAch

ON LigneAch.Reference = ARTICLES.Reference
2109
Stagiaire WDF
 
Messages: 3
Enregistré le: Sam 29 Aoû 2015 09:25

Message non lupar 2109 » Jeu 11 Fév 2016 15:58

Rebonjour

ReqClient est une Source de Données

HExécuteRequêteSQL(ReqClient,hRequêteDéfaut,"SELECT FLigneCde.Reference,COALESCE(SommeQteV,0) - COALESCE(SommeQteA,0)"+...

"FROM FARTICLES"+...

"LEFT OUTER JOIN"+...

"(SELECT Reference,SUM(Quantite_Livr) AS SommeQteV FROM FLigneCde GROUP BY Reference) "+...

"AS FLigneCde"+...

"ON FLigneCde.Reference = FARTICLES.Reference"+...

"LEFT OUTER JOIN"+...

"(SELECT Reference,SUM(Quantite_Livr) AS SommeQteA FROM FLigneCde_A GROUP BY Reference) "+...

"AS FLigneCde_A"+...

"ON FLigneCde_A.Reference = FARTICLES.Reference")
2109
Stagiaire WDF
 
Messages: 3
Enregistré le: Sam 29 Aoû 2015 09:25


Retourner vers WinDev

cron