Quantidade Acumulada

10/01/2010

0

Olá pessoal: Gostaria de uma colaboração de vocês (Banco Firebird): Tenho: select codigo_produto , quantidade_vendida from vendas
union
select codigo_produto, quantidade_comprada from compras gostaria que retornasse, o seguinte: ---------------------------------------------------
Codigo_produto Quantidade Quantidade_acumulada(por linha) Exemplo: =====================================================
Codigo  Quantidade  Quantidade_Acumulada   Operacao    
====================================================
    1        24      24                     Venda       
    2         6      30                     venda  
    3         4      34                     venda
    2         3      31                     compra
    1         8      23                     compra
    1        24      47                     Venda
====================================================
Já consegui usando uma Stored Procedure com Union (em Firebird)
exceto o campo "Quantidade acumulada".
Obrigado pessoal.. Obs: Sem fazer média. Três coisas muito boas (Site Devmedia, Firebird e Delphi (principalmente 0
7), qum não as conhece não sabe o que está perdendo... Obrigado a todos  
Hermes Silva

Hermes Silva

Responder

Posts

11/01/2010

Emerson Nascimento

tente algo assim:

create procedure XXXX
returns(
  codigo integer,
  quantidade double precision,
  acumulado double precision,
  operacao varchar(6)
)
begin
  acumulado = 0;

  for select codigo_produto, quantidade_vendida, 'Venda' from vendas [where]
      union
      select codigo_produto, quantidade_comprada, 'Compra' from compras [where]
      into :codigo, :quantidade, :operacao
  do
  begin
    if (:operacao = 'Venda')
      acumulado = acumulado + quantidade;
    else
      acumulado = acumulado - quantidade;

    suspend;
  end;
end;
Responder

17/01/2010

Devmedia

     Gostaria de agradecer ao forun Devmedia e em particular ao EMERSON E. DO NASCIMENTO pela solução apresentada, era isso mesmo qu eu queria, e olhe que eu levei algumas horas tentando, muito obrigado EMERSON. 
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar