[firebase-br] Consulta Complexa

Kleber Oliveira (Softvip) kleber em softvip.com.br
Sex Jun 15 17:45:41 -03 2007


Olá Márcio,

A idéia é essa mesma q passou, mas só que por exemplo, se um produto de uma 
determinada região teve sua última entrada um dia antes, ele não entra na 
relação. No exemplo de dados que passei abaixo, o Tomate estaria ausente, e 
não poderia. Quero o último custo de todos os produtos e para isso eles 
podem ter dado entradas em datas diferentes.

Obrigado e abraço,

Kleber.

----- Original Message ----- 
From: "Márcio Zaneti Palma" <mzpalma.news em gmail.com>
To: <lista em firebase.com.br>
Sent: Friday, June 15, 2007 5:11 PM
Subject: Re: [firebase-br] Consulta Complexa


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
>


______________________________________________
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