PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → WD7.5206G - Requête SQL
WD7.5206G - Requête SQL
Débuté par Marcel.berman@managingbusiness.be, 13 jan. 2004 12:49 - 3 réponses
Posté le 13 janvier 2004 - 12:49
Salut !
J'ai une table avec des enregistrements dont un des champs est un statut (
numérique qui indique si un article est en stock, s'il est vendu, etc. ...),
un des champs est le PA et un des champs est le prix de vente.
J'ai fait une requête qui me permet de savoir ce qui est en stock et une
requête qui me permet de savoir ce qui est vendu, mais je coince quand je
tente de joindre mes deux requêtes pour pouvoir afficher les stock ET les
ventes dans un même tableau

Requête Stock
StReq = "select Produit, count(produit) as qtestock, sum(prach) as valach
from articles where statut=1 order by produit group by produit"

Requete Vente
StReq = "select Produit, count(produit) as qtevente, sum(prvente) as
valvente from articles where statut=2 order by produit group by produit"


J'obtiens dans ces deux cas ce que je veux.
Stock
Articles/QteStock/ValeurAchat
Vente
Articles/QteVente,ValeurVente

Je voudrais obtenir
Articles/QteStock/ValeurAchat/QteVente/ValeurVente

Avec une seule ligne pour tous les articles qu'ils soient en stock, en stock
et vendus, rien que vendus.
Et je ne m'en sors pas.
Toutes mes requètes me donnent des erreurs.
Si un spécialiste pouvait m'aider, je lui en serais très reconnaissant !


--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477
Posté le 13 janvier 2004 - 14:00
Marcel.berman@managingbusiness.be wrote:

Salut !
J'ai une table avec des enregistrements dont un des champs est un statut

(
numérique qui indique si un article est en stock, s'il est vendu, etc. ...),
un des champs est le PA et un des champs est le prix de vente.
J'ai fait une requête qui me permet de savoir ce qui est en stock et une
requête qui me permet de savoir ce qui est vendu, mais je coince quand je
tente de joindre mes deux requêtes pour pouvoir afficher les stock ET les
ventes dans un même tableau

Requête Stock
StReq = "select Produit, count(produit) as qtestock, sum(prach) as valach
from articles where statut=1 order by produit group by produit"

Requete Vente
StReq = "select Produit, count(produit) as qtevente, sum(prvente) as
valvente from articles where statut=2 order by produit group by produit"


J'obtiens dans ces deux cas ce que je veux.
Stock
Articles/QteStock/ValeurAchat
Vente
Articles/QteVente,ValeurVente

Je voudrais obtenir
Articles/QteStock/ValeurAchat/QteVente/ValeurVente

Avec une seule ligne pour tous les articles qu'ils soient en stock, en stock
et vendus, rien que vendus.
Et je ne m'en sors pas.
Toutes mes requètes me donnent des erreurs.
Si un spécialiste pouvait m'aider, je lui en serais très reconnaissant !


--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477

2 solutions me viennent à l'esprit :
1. un full outer join entre tes deux requêtes, avec comme condition de jointure
le code du produit. Tu ne précises pas si tu utilises HF ou une autre base,
car dans le dernier cas une solution de facilité est de créer deux vues,
une pour chaque requête, puis de faire une jointure entre les deux vues.
2. Deux requêtes séparées, et un bout de code pour remettre tout à plat dans
un fichier temporaire, ou une table mémoire.

Juste pour la petite histoire : tel que tu présentes tes tables, un produit
ne peut qu'être en stock OU vendu, mais pas les deux en même temps, ou alors
produit n'est pas la clé primaire de Article. Mais dans ce cas ton analyse
me semble un peu bizarre. Pourquoi ne pas utiliser une table Stat_Produit,
qui contient les quantités en stock, et les quantités vendues ?
Frédéric.
Posté le 13 janvier 2004 - 16:26
Salut !



On 13-Jan-2004, "Frédéric DEMILLY" <f.demilly@pacificpeche.Fr> wrote:

Juste pour la petite histoire : tel que tu présentes tes tables, un
produit
ne peut qu'être en stock OU vendu, mais pas les deux en même temps, ou
alors
produit n'est pas la clé primaire de Article. Mais dans ce cas ton analyse
me semble un peu bizarre. Pourquoi ne pas utiliser une table Stat_Produit,
qui contient les quantités en stock, et les quantités vendues ?
Frédéric.



Tu as raison ... Cette table contient l'inventaire des produits.
Il s'agit d'une gestion FIFO et la description de la requète ainsi que de la
table a été simplifiée au maximum pour exposer mon problème.
Il y a un enregistrement pour chaque article acheté, et de fait, Produit
n'est pas la clef unique de ce fichier, par contre c'est une clef avec
doublon.
La clef unique est liée au document d'achat ...
Le statut permet de savoir si l'article est en stock, vendu, s'il est en
commande, en réparation, etc ...

Je vais examiner ta proposition ainsi que d'autres recçues en privé ...

--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477
Posté le 15 janvier 2004 - 10:55
bonjour,
essaye de faire une requete UNION avec les 2 requetes,
ainsi il y aura une ligne par produit avec les colonnes distinctes.
bon courage.




"Frédéric DEMILLY" <f.demilly@pacificpeche.Fr> wrote:


Marcel.berman@managingbusiness.be wrote:

Salut !
J'ai une table avec des enregistrements dont un des champs est un statut
(

numérique qui indique si un article est en stock, s'il est vendu, etc.

...),
un des champs est le PA et un des champs est le prix de vente.
J'ai fait une requête qui me permet de savoir ce qui est en stock et une
requête qui me permet de savoir ce qui est vendu, mais je coince quand

je
tente de joindre mes deux requêtes pour pouvoir afficher les stock ET les
ventes dans un même tableau

Requête Stock
StReq = "select Produit, count(produit) as qtestock, sum(prach) as valach
from articles where statut=1 order by produit group by produit"

Requete Vente
StReq = "select Produit, count(produit) as qtevente, sum(prvente) as
valvente from articles where statut=2 order by produit group by produit"


J'obtiens dans ces deux cas ce que je veux.
Stock
Articles/QteStock/ValeurAchat
Vente
Articles/QteVente,ValeurVente

Je voudrais obtenir
Articles/QteStock/ValeurAchat/QteVente/ValeurVente

Avec une seule ligne pour tous les articles qu'ils soient en stock, en

stock
et vendus, rien que vendus.
Et je ne m'en sors pas.
Toutes mes requètes me donnent des erreurs.
Si un spécialiste pouvait m'aider, je lui en serais très reconnaissant

!


--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477

2 solutions me viennent à l'esprit :

1. un full outer join entre tes deux requêtes, avec comme condition de jointure
le code du produit. Tu ne précises pas si tu utilises HF ou une autre base,
car dans le dernier cas une solution de facilité est de créer deux vues,
une pour chaque requête, puis de faire une jointure entre les deux vues.
2. Deux requêtes séparées, et un bout de code pour remettre tout à plat

dans
un fichier temporaire, ou une table mémoire.

Juste pour la petite histoire : tel que tu présentes tes tables, un produit
ne peut qu'être en stock OU vendu, mais pas les deux en même temps, ou alors
produit n'est pas la clé primaire de Article. Mais dans ce cas ton analyse
me semble un peu bizarre. Pourquoi ne pas utiliser une table Stat_Produit,
qui contient les quantités en stock, et les quantités vendues ?
Frédéric.