[firebase-br] Firebird 2.0 First

Ivan Guimarães Meirelles igmeirelles em gmail.com
Qua Dez 27 12:38:37 -03 2006


Olá Paulo...

Vamos ver se consigo te ajudar em alguma coisa...

Suponhamos que vc tenha 3 tabelas (vendas, vendedores, itens) onde há um
relacionamento da tabela vendas com itens e vendedores.
Criei uma procedure que retorna para cada vendedor os 5 produtos que ele
mais vendeu, ai vc adapta a sua realidade...


CREATE PROCEDURE PRODUTOS_MAIS_VENDIDOS 
returns (
    id_vendedor integer,
    id_produto integer,
    qtd_vendida decimal(15,2))
as

declare variable id_aux integer;

begin

    for select
        vd.idatendente
        from vendedores vd
        into
            :id_aux
        do
            begin
                for select first 5
                    i.idproduto,
                    sum(i.quantidade)
                    from itens i
                    join vendas v on v.idvenda = i.idvenda
                    where v.idvendedor = :id_aux 
                    group by 1
                    order by 2 desc
                    into
                        :id_produto,
                        :qtd_vendida
                    do
                        begin
                            id_vendedor = :id_aux;
                            suspend;
                        end
            end
end



Bom, se vc postar ai as estruturas de suas tabelas, poderei adaptar a SP
para vc...

PS.: Pode não ser a maneira mais fácil ou elegante... porém funcionou... se
alguém puder melhorar, eu também gostaria de aprender mais...

Um abraço.




-----Original Message-----
From: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
On Behalf Of Paulo Geloramo
Sent: quarta-feira, 27 de dezembro de 2006 10:09
To: Lista Firebird
Subject: [firebase-br] Firebird 2.0 First

Firebird 2.0 

Como retornar os 5 produtos mais
vendidos de cada vendedor?

ven pro
1    1
1    2
1    3
1    4
1    5
2    1
2    2
2    3
2    4
2    5

Nos testes que fiz usando first
esta retornando todos.

Alguma sugestão?
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br Para
editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista