Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

hawk B

procedure

Recommended Posts

boa tarde pessoal

 

a procedure abaixo é para trazer em um refcursor o resultado desse select (nao sei se tá certo) que traga a maior venda entre um periodo.

 

create or replace procedure maior_venda
(p_data_inicial in date, -- parametros de entrada
p_data_final in date,
p_retorno out pk_maior.tp_refcursor)
as

begin

 open p_retorno for
 select p.prod_nome, p.sub_codigo, sum(vi.item_valor * vi.item_qtde)tot_venda
 from produto p, ven_itens vi, vendas v
 where vi.sub_cod = p.sub_cod
 and vi.ven_cod = v.ven_cod
 and v.ven_data between p_data_inical and p_data_final
 group by p.prod_nome, p.sub_cod

end maior_venda;

 

tah certo? sou novo em procedures e functions

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) tp_refcursor foi definido anteriormente ?

 

2) Antes do Open coloque

 

 if p_retorno%isopen then
     Close p_retorno;
   end if;

 

3)

que traga a maior venda entre um periodo

 

A query não faz isto, tente :

 

select *
from
(
Select p.prod_nome, p.sub_codigo, sum(vi.item_valor * vi.item_qtde) tot_venda
 from produto p, ven_itens vi, vendas v
 where vi.sub_cod = p.sub_cod
 and vi.ven_cod = v.ven_cod
 and v.ven_data between p_data_inical and p_data_final
group by p.prod_nome, p.sub_cod
order by 3 desc
) where rownum <=1

 

Mas aí um Cursor não será necessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.