Não, se fosse simples assim não teria perguntado, rsss.

 

Eu quero montar uma query que me exiba o saldo a cada movimentação, como um
Kardex.

Tentei algo aqui com a função LAG, que permite retornar valores de linhas
anteriores, mas não consegui fazer funcionar, pois não consigo pegar o saldo
anterior e sim apenas a quantidade movimentada na linha anterior.

 

 

Assim é o resultado da query que eu espero obter.

 

COD_PRODUTO  ENT_SAIDA    QTE_MOV    SALDO
------------ ------------ ---------- ------
PRODUTO      ENTRADA              10     10
PRODUTO      ENTRADA               5     15
PRODUTO      SAIDA                 3     12
PRODUTO      SAIDA                 6      6

 

Entendeu?





Marcelo Alberto Lauschner 

Analista/Desenvolvedor de Sistemas

Auto Pratense Ltda

*- Fone: (0XX54) 3242-3620

*- Fax: (0XX54) 3242-3648

* - E-mail:  <mailto:marc...@autopratense.com.br>
marc...@autopratense.com.br

* - WWW: www.autopratense.com.br

  _____  

De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em
nome de Elis Azevedo Nery
Enviada em: quinta-feira, 26 de fevereiro de 2009 11:22
Para: oracle_br@yahoogrupos.com.br
Assunto: Res: [oracle_br] Kardex ou Extrato de saldo de estoque.

 

É disso que você precisa?

select COD_PRODUTO
,SUM(decode( ENT_SAIDA ,'ENTRADA',QTE_MOV,QTE_MOV*-1)) SALDO
FROM ESTOQUE 
GROUP BY COD_PRODUTO

________________________________
De: Marcelo Alberto Lauschner <marc...@autopratens
<mailto:marcelo%40autopratense.com.br> e.com.br>
Para: oracle...@yahoogrup <mailto:oracle_br%40yahoogrupos.com.br> os.com.br
Enviadas: Quinta-feira, 26 de Fevereiro de 2009 14:13:56
Assunto: [oracle_br] Kardex ou Extrato de saldo de estoque.

Estou quebrando a cabeça para tentar montar uma query que consiga
retornar numa coluna o saldo de estoque de um produto a cada
movimento, como um extrato de conta bancária.

Connected to Oracle Database 11g Enterprise Edition Release
11.1.0.6.0
Connected as SIGA

SQL> CREATE TABLE ESTOQUE(COD_ PRODUTO VARCHAR2(15) ,ENT_SAIDA VARCHAR2
(7),QTE_MOV NUMBER);

Table created

SQL> INSERT INTO ESTOQUE('PRODUTO' ,'ENTRADA' ,10);
SQL> INSERT INTO ESTOQUE VALUES ('PRODUTO',' ENTRADA', 10);
1 row inserted
SQL> INSERT INTO ESTOQUE VALUES ('PRODUTO',' ENTRADA', 5);
1 row inserted
SQL> INSERT INTO ESTOQUE VALUES ('PRODUTO',' SAIDA',3) ;
1 row inserted
SQL> INSERT INTO ESTOQUE VALUES ('PRODUTO',' SAIDA',6) ;
1 row inserted
SQL> SELECT * FROM ESTOQUE ORDER BY ROWID;

COD_PRODUTO ENT_SAIDA QTE_MOV
------------ --- --------- ----------
PRODUTO ENTRADA 10
PRODUTO ENTRADA 5
PRODUTO SAIDA 3
PRODUTO SAIDA 6

Ao final adicionar uma coluna que tenha o saldo linha a linha.
COD_PRODUTO ENT_SAIDA QTE_MOV SALDO
------------ --- --------- ---------- ------
PRODUTO ENTRADA 10 10
PRODUTO ENTRADA 5 15
PRODUTO SAIDA 3 12
PRODUTO SAIDA 6 6

Espero que alguém tenha uma luz para me ajudar.

At.

Marcelo Alberto Lauschner.

Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbusca <http://br.maisbuscados.yahoo.com> dos.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]

Responder a