[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