[firebase-br] Tentando Novamente (Como Fazer este Select?)

Pedro news.pj em gmail.com
Qui Maio 25 11:30:43 -03 2006


Acho que isso sai melhor usando uma SP retornando os campos que vc quer...

Considerando que a ligação com a tabela cliente está na tabela Itens,
ficaria algo como :

Create Procedure SuaConsulta(
VarQuantia  Integer,
VarDataI    Seu_tipo_para_VarDataI,
VarDataF    Seu_tipo_para_VarDataF,
VarEntregue Seu_tipo_para_VarEntregue )
Returns
(
ClienteNo   Seu_tipo_para_ClienteNo,
RazaoSocial Seu_tipo_para_RazaoSocial,
ProdutoNo   Seu_tipo_para_ProdutoNo,
Descricao   Seu_tipo_para_Descricao,
Preco       Seu_tipo_para_Preco,
Vendidos    Seu_tipo_para_Vendidos,
Valor       Seu_tipo_para_Valor )
as
begin
     for
        Select ClienteNo, RazaoSocial
        from Sua_tabela_de_Clientes
        Order by 2 Asc
        into :ClienteNo, :RazaoSocial
     do
       for
          Select First :VarQuantia T1.ProdutoNo,
                 T1.DESCRICAO, T1.Preco,
                 Sum (T2.Quantia),
                 Sum (T2.quantia * T2.unitario *(100-T2.desconto)/100)
          From Produtos T1, Itens T2
          Where T2.ClienteNo=:ClienteNo and
                T2.ProdutoNo = T1.ProdutoNo and
                T2.data Between :VarDataI and :VarDataF and
                T2.entregue Like :VarEntregue
          group by 1, 2, 3
          Order by 4 Desc
          into :ProdutoNo, :Descricao, :Preco, :Vendidos, :Valor
       do
         suspend;
end

Para buscar o resultado, vc poderia fazer algo como :

Select ClienteNo, RazaoSocial, ProdutoNo, Descricao, Preco, vendidos, Valor
from SuaConsulta ( qtd, data_de_inicio, data_final, Entregue )

At,
Pedro.

Em 25/05/06, ibestvip<zottissistemas em ibestvip.com.br> escreveu:
> GeleiraComo eu postei meio tarde ontem talvez nem todos tenham visto a minha
> mensagem, por isso estou enviando novamente.
>
> Pessoal, Tenho uma pesquisa que me retorna os "N" produtos Mais vendidos,
> Consultando a tabela de Itens dos Pedidos. dentro de Um período escolhido
>
> Ela me Retorna assim
>
> Código Produto  Quantia Valor
> 01        Teste1     10          100
> 04        Teste2     20          15
>
>
> assim por diante,
> o que eu Gostaria é que a pesquisa Também fizesse a Pesquisa por cliente...
> Tipo:
>
> ClienteNo Razão Social
> 01               Cliente1             Código Produto  Quantia Valor
>                                               01        Teste1     10
>   100
>                                               04        Teste2     20
>   15
>                                               06        Teste25    8
>    6
> 02               Cliente2             Código Produto  Quantia Valor
>                                               01        Teste1     2
>  5
>                                               04        Teste2     2
>  1,5
>                                               06        Teste25    25
>  100
>
> Assim por Diante. Ou seja trazer a somatória de Cada produto vendido Por
> Cliente.
>  O Código do 1 select é este.
>
> Select First :VarQuantia T1.ProdutoNo,
>            T1.DESCRICAO,
>            T1.Preco,
>
>            Sum (T2.Quantia) as Vendidos,
>            Sum (T2.quantia * T2.unitario *(100-T2.desconto)/100) as valor
>
> >From Produtos T1
>        , Itens T2
>
> Where T2.ProdutoNo = T1.ProdutoNo
>    and T2.data Between :VarDataI and :VarDataF
>    and (T2.entregue) Like (:VarEntregue)
>
> group by T1.produtoNo
>              , T1.Descricao
>              , T1.preco
>              , vendidos
> Order by Vendidos Descending
>
>
> Grato
>
> Zottis.
>
> ************************************
> José Mauricio Barbisan Zottis
> ************************************
>               Cianorte /PR
> zottissistemas em ibestvip.com.br
> *************************************
> ______________________________________________
> 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