Eu acho que o problema esta na clausula Where, que esta sendo aplicada na tabela estoque. Para dar uma opnião melhor teria que conhecer a estrutura da tabela estoque.
Estude a possibilidade usar a Clausula UNION e/ou o HAVING na tua instrução SELECT SQL. Mas dependendo dos indices que vc tem nas tabelas talvez realmente seja melhor ter dois selects criando cursores temporarios e juntando tudo em um terceiro.
>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!
Paulo Cesar Carneiro
desenvolvimento@controplan.com.br"My God, what have we done?"
-- Capt. Robert Lewis, co-pilot of the Enola Gay, recalling the moment the atomic bomb exploded over Hiroshima
At 8:15 a.m. on August 6 1945