[firebase-br] duvida na sp

samuel ferreira samuel.peres.ferreira em gmail.com
Seg Nov 3 17:24:23 -03 2008


ola

to usando o fb 2.1

tenho q fazer uma lista de ordem de producao, que priorize o cliente que
comprou menos tipos de produtos, independente da quantidade.

ou seja o cliente q comprou os itens 'a', 'b' será atendido antes do cliente
que comprou os itens 'a', 'b', 'c' e 'd'. POREM, quando sair a lista de
producao, os produtos nao serao repetidos, sendo assim:

producao do item 'a' : quantidade do primeiro cliente + quantidade do
segundo cliente
 producao do item 'b' : quantidade do primeiro cliente + quantidade do
segundo cliente
 producao do item 'c' : quantidade do segundo cliente


fiz esta logica:


inicio do loop


-- Linha A
          select first 1 cliente, count(*)
              from temporaria
              where computador = :computador
              group by CLIENTE
              order by 2
              into :wCliente, :Quantidade;

          if (wCliente = 0) THEN
             leave;    -- ja tentei com break

-- Linha B

          for select distinct t.produto, p.descricao, p.marca
                  from temporaria t, produto p
                  where t.cliente = :wCliente AND
                        t.computador = :Computador AND
                        t.produto = p.produto
                  into :Produto, :descricao, :marca do
             BEGIN
                select sum(quantidade)
                   from temporaria
                   where computador = :Computador AND
                         produto = :produto
                   into :quantidade;
                suspend;
                delete from temporaria
                      where computador = :computador and
                            produto = :produto;
             end
      end

via debug, tudo funciona certinho, porem, ele trava no ultimo registro e
fica em loop entre as linhas A e B. No select first, embora a tabela ja
esteja vazia, o select retorna o ultimo registro, nao retornando nem nulo
nem zero

se alguem ver o erro ai, fico agradecido e desculpem pelo tamanho da msg.


obrigado


samuel



Mais detalhes sobre a lista de discussão lista