[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