Esta solução não serve pra ele porque o que eu devolvo é o saldo final por 
produto. 
O que ele quer é o valor do saldo após cada movimento. A solução que o Alex 
deu, é a ideal.




________________________________
De: Júlio César Corrêa <juliotubi...@yahoo.com.br>
Para: oracle_br@yahoogrupos.com.br
Enviadas: Quinta-feira, 26 de Fevereiro de 2009 15:49:47
Assunto: Re: RES: [oracle_br] Kardex ou Extrato de saldo de estoque.

Gostei desta opção Elis.

Daria para explicar a logica desta query?Essa sacada de ," QTE_MOV*-1 "Para
ficar mais claro.Então nosso amigo pode até usa-la na elaboração da sua.

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

Abs,



2009/2/26 Júlio César Corrêa <juliotubi...@yahoo.com.br>

> Tentei primeiro encontrar o resultado esperado,não performance e etc.Isso é
> outro ponto.
>
> Fiz esta correndo :
> SELECT DISTINCT COD_PRODUTO,ENTRADA,SAIDA ,(ENTRADA - SAIDA) SALDO
> FROM ( SELECT COD_PRODUTO COD_PRODUTO,
>          (SELECT SUM(QTE_MOV)
>             FROM ESTOQUE
>           WHERE ENT_SAIDA ='ENTRADA') ENTRADA,
>        (SELECT SUM(QTE_MOV)
>           FROM ESTOQUE
>         WHERE ENT_SAIDA ='SAIDA') SAIDA
>       FROM ESTOQUE
>     )
>
> COD_PRODUTO ENTRADA SAIDA SALDO
> PRODUTO 15 9 6
> PRODUTO 15 9 6
> PRODUTO 15 9 6
> PRODUTO 15 9 6
>
>
> 2009/2/26 alex borgmann <alexborgm...@yahoo.com>
>
>   Boa tarde, Marcelo,
>>
>> Experimenta com função analitica,
>>
>> select COD_PRODUTO
>> ,sumFROM ESTOQUE ;
>> (decode( ENT_SAIDA ,'ENTRADA',QTE_ MOV,QTE_MOV* -1)) over(order by rownum)
>> []
>>
>> ________________________________
>> From: Marcelo <marc...@autopratense.com.br<marcelo%40autopratense.com.br>
>> >
>> To: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>
>> Sent: Thursday, February 26, 2009 11:43:49 AM
>> Subject: RES: [oracle_br] Kardex ou Extrato de saldo de estoque.
>>
>>
>> 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/Desenvolve dor de Sistemas
>>
>> Auto Pratense Ltda
>>
>> *- Fone: (0XX54) 3242-3620
>>
>> *- Fax: (0XX54) 3242-3648
>>
>> * - E-mail: <mailto:marc...@autopratens e.com.br>
>> marc...@autopratens e.com.br
>>
>> * - WWW: www.autopratense. com.br
>>
>> _____
>>
>> De: oracle...@yahoogrup os.com.br [mailto:oracle...@yahoogrup os.com.br]
>> Em
>> nome de Elis Azevedo Nery
>> Enviada em: quinta-feira, 26 de fevereiro de 2009 11:22
>> Para: oracle...@yahoogrup os.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...@autopraten s
>> <mailto:marcelo% <marcelo%25> 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.maisbusca dos.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]
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>  
>>
>
>
>
> --
> Júlio César Corrêa
> IS Technologist - Oracle DBA
> http://jccorrea.blogspot.com
>
> “To stay competitive in the tech industry, never stop
> learning. Always be on the lookout for better ways of
> doing things and new technologies. Our industry does
> not reward people who let themselves stagnate”
> –John Hall, Senior Vice President, Oracle University
>
>


-- 
Júlio César Corrêa
IS Technologist - Oracle DBA
http://jccorrea.blogspot.com

“To stay competitive in the tech industry, never stop
learning. Always be on the lookout for better ways of
doing things and new technologies. Our industry does
not reward people who let themselves stagnate”
–John Hall, Senior Vice President, Oracle University


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



------------------------------------

--------------------------------------------------------------------------------------------------------------------------
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  
------------------------------------------------------------------------------------------------------------------------
 Links do Yahoo! Grupos


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

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

Responder a