[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