Alow! Alow! Alow!
Tenho uma instrução Select que me retorna uma lista de clientes ordenado por acumulo financeiro. Este cursor é chamado de Resultado1
Resultado1 -> Codigo, Nome, Acumulado
Até aqui está tudo funcionando... Mas agora me foi requisitado que este relatório, além de listar os maiores clientes (financeiro) deveria também listar os 3 produtos mais vendidos para cada cliente e o bicho pegou...
Pensei em algo:
Select Resultado1.*, Estoque.Item, Produtos.Descricao, Sum(Estoque.Peso) As Peso;
From Resultado1 Left Outer Join Estoque On Resultado1.Clodigo = Estoque.Cliente;
Left Outer Join Produtos On Estoque.Item = Produtos.Codigo;
Where Between(Estoque.DataMov,{01/07/2003},{31/07/2003});
Into Cursor Resultado
Tenho 2 problemas:
1) Vamos imaginar que o cliente tenha um lançamento financeiro dentro deste período (logo irá constar no cursor Resultado1) e não possui nenhum item na tabela estoque (vamos imaginar que foi um serviço prestado - Neste caso, a linha simplesmente é excluída, pois o select filtrou o Resultado1 com o filtro que deveria agir sobre apenas os lançamentos em estoque. Ou seja, eu preciso de um cursor com TODAS as linhas do cursor RESULTADO1 e apenas as 3 primeiras linhas (totalizada por produto) do ESTOQUE.
2) Como restringir apenas 3 linhas do ESTOQUE?
Estou começando a achar que vou precisar de 2 cursores com uma relação e SET SKIP OF para conseguir o efeito desejado dentro de um relatório! ;-)
Alguma dica?
[]s!
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Rodolfo Duarte