OVH Cloud OVH Cloud

Isoler des cumuls négatifs

1 réponse
Avatar
bne
Bonjour,

Petit case-tête entre amis.
Je voudrais isoler des stocks négatifs sur une période donnée dans une requete.
J'ai une table DISPON qui reprend ceci
Code Article + Date + ordre (A ou Z) + quantité mouvementée + Dossier
4001 20030101 Z -50 123456
4001 20030102 Z -10 654321
4001 20030103 A 50 123456
4001 20030106 A 10 654321
...

Dans une autre table (ARTICLE), j'ai chaque article avec son stock actuel.

Si j'ai 55 articles 4001, j'aurai un probleme le 20030102 car il m'en manquera 5
Je voudrais donc dans une table (vue), 4001 20030102 -5 654321 représentant
55 du stock de départ - 50 qui partent le 20030101 - 10 qui partent le 20030102.
Je tombe en négatif et je ne pourrai donc livrer.

Y-a-t-il moyen de faire cela en SQL avec une belle requete ?
L'idéal étant d'avoir cela pour tous les articles de la table ARTICLE.

Merci d'avance pour vos éclaircissements...

Benoit Neve

1 réponse

Avatar
Laurent Moreau
champs:
c = code article
d = date
q = quantité mouvementée


SELECT A.c, A.d, c.q+sum(b.q) from
DISPON A
inner join ARTICLE C ON A.c=C.C
, DISPON B
where A.d>=B.d
group by a.c, a.d, c.q
ORDER BY a.c, a.d


Voila ta requete de base.

Je pense qu'il faut a partir de la, ne prendre dans DISPON que les
mouvements dont la date est supérieur a la date d'inscription du stock dans
ARTICLE.

Pour n'avoir que les dates ou le stock sera négatif il suffit d'ajouter dans
le where:
AND c.q+sum(b.q)<0




Laurent.





"B. Neve" wrote in message
news:
Bonjour,

Petit case-tête entre amis.
Je voudrais isoler des stocks négatifs sur une période donnée dans une


requete.
J'ai une table DISPON qui reprend ceci
Code Article + Date + ordre (A ou Z) + quantité mouvementée + Dossier
4001 20030101 Z -50 123456
4001 20030102 Z -10 654321
4001 20030103 A 50 123456
4001 20030106 A 10 654321
...

Dans une autre table (ARTICLE), j'ai chaque article avec son stock actuel.

Si j'ai 55 articles 4001, j'aurai un probleme le 20030102 car il m'en


manquera 5
Je voudrais donc dans une table (vue), 4001 20030102 -5 654321


représentant
55 du stock de départ - 50 qui partent le 20030101 - 10 qui partent le


20030102.
Je tombe en négatif et je ne pourrai donc livrer.

Y-a-t-il moyen de faire cela en SQL avec une belle requete ?
L'idéal étant d'avoir cela pour tous les articles de la table ARTICLE.

Merci d'avance pour vos éclaircissements...

Benoit Neve