[SQL] requête qui cumule

requête qui cumule [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 26-08-2004 à 14:41:13    

j'ai une base avec les mouvements de stock
si je pars depuis le début j'avais un stock
vide et il est approvisionné et vidé régulièrement.
 
j'ai donc une table avec
produit mvt
truc    40000
truc    -25621
truc    532
truc    -2413
 
et je voudrais avoir un suivi du stock (résultat de ma requête)
produit etat_stock
truc    40000
truc    14379
truc    14911
truc    12498
 
voilà!
j'aimerai faire ça sous oracle (en évitant le pl/sql si possible)
ou access qui l'attaque en odbc pour l'instant je fais ça
facilement en excel  :pt1cable: mais ça fait des copier coller
manuels et je voudrais automatiser ça
 
Merci d'avance les gens

Reply

Marsh Posté le 26-08-2004 à 14:41:13   

Reply

Marsh Posté le 26-08-2004 à 15:49:52    

Tu n'as que le produit et mouvement dans ta table ? Rien d'autre pour identifer l'avancement du stock ? (genre une date ...)
 
Quelquechose dans le genre devrait marcher :
 

Code :
  1. SELECT mt1.PRODUIT, SUM(mt2.mvt) AS etat_stock
  2. FROM   ma_table mt1, ma_table mt2
  3. WHERE  mt1.PRODUIT = mt2.PRODUIT
  4. AND    mt2.ROWNUM <= mt1.ROWNUM;


 
à vérifier bien sûr :D
 
Mais le principe est assez simple : pour chaque ligne de la table, on récupère toutes les lignes précédentes (et la courante), et on somme les mouvements.

Reply

Marsh Posté le 26-08-2004 à 15:52:15    

sisi y a une date qd meme, je vais aller tester ça

Reply

Marsh Posté le 26-08-2004 à 15:53:00    

Alors change la requête en remplaçant le ROWNUM par la date ;)

Reply

Marsh Posté le 26-08-2004 à 17:17:47    

bien joué j'ai juste eu a rajouter un group by date,produit

Reply

Marsh Posté le 26-08-2004 à 18:21:01    

ouaip, j'avais oublié le group by ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed