[firebase-br] Consulta Complexa
Márcio Zaneti Palma
mzpalma.news em gmail.com
Sex Jun 15 17:11:41 -03 2007
Oi Kleber!!
Amigo, não sei se entendi bem seu problema: o que você quer é apenas o
último lançamento (de acordo com o campo "Data") de Proxuto x Região?
Se for isto, tente assim:
Select Produto, Regiao, Custo, Data
From CustoDiario
where data = (select Max(data) from CustoDiario)
Mais uma coisa: tome cuidado, pois a finalidade O "first" é paar reduzir
o tráfego na rede e não para pegar os primeiros registros de acordo com
o "order by".
Como sugestão, dê uma lida no livro sobre FireBird 2 do Cantú no
capitulo "tudo sobre selects", ok?
Abração!
Márcio Palma
Kleber Oliveira (Softvip) escreveu:
> Prezados,
>
> Vejam essa consulta:
> ----------------
> Select First 1 Custo,Data From CustoDiario
> Where Produto=:xProduto and Regiao=:xRegiao
> Order by Data Desc
> ----------------
>
> Eu tenho ela num loop onde ele pega um por um dos produtos e dentro deste
> uma por uma da região. Assim eu verifico se numa determinada data, o
> produtos em todas regiões de atuação da empresa tem seu custo definido.
>
> Minha dúvida é: Existiria uma forma de apenas no SQL eu trazer todos os
> produtos de todas as regiões? Algo assim:
>
> Select First 100 Produto,Regiao,Custo,Data From CustoDiario Order By Data
> Desc
>
> Eu coloquei 100,por exemplo, pq sei que tem 20 produtos e 5 região,
> portanto, eu pegaria os 20 produtos das 5 regiões, consequentemente, viria a
> ultima entrada de cada produto de cada região. Mas essa quantidade de
> produtos e região pode variar. E usar esse artifício é perigoso tbém, pq um
> produto pode ter sido dada entrada 2 dias e um só na semana passada,
> portanto os 100 primeiros poderá incluir o mesmo produtos da mesma região 2
> vezes, e o que quero é a relação de todas as ultimas entrada de todos os
> produtos de todas as regiões.
>
> Ultima entrada Produto Região Valor
> --------------------------------------------------------
> 15/06/2007 Alface 1 2,00
> 15/06/2007 Alface 2 1,98
> 15/06/2007 Rucula 1 1,50
> 15/06/2007 Rucula 2 1,49
> 14/06/2007 Tomate 1 2,00 -> veja isso pode
> acontecer (datas diferentes)
> 13/06/2007 Tomate 2 2,39 -> essas foram as
> últimas entradas do Tomate de cada região
> ....
>
> Então eu tenho q levantar esses (últimos) custos, de cada produto de cada
> região.
>
> Toda colaboração é bem vinda
>
> []´s
>
> kleber Oliveira.
>
>
> ______________________________________________
> 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