[firebase-br] Ajuda com SQL e datas

André Conrado acf em andreconrado.net
Qui Set 6 10:38:33 -03 2012


Sandro, se eu entendi o que ele precisa, então vc quase acertou, só
trocou as datas. Não vou repetir o código somente a lógica:

Acredito que primeiro deveria selecionar todos os últimos lançamentos
de cada produto e depois verificar quais estão vencidos.

Se for isso Maycon, basta usar o código do Sandro trocando a data de
vencimento pela data de lançamento.

Abs.

Em 5 de setembro de 2012 22:33, MAURICIO COSTA
<maximmumsistemas em gmail.com> escreveu:
> Possa ser que não estou entendendo a lógica de negócio para poder te
> ajudar. Até já postei algo sobre o que você esta comentado novamente. Mas,
> me explica uma coisa.
> Se a data atual é  04/09/2012 como estou lançando no sistema um produto em em
> 30/0/2012.
> O que estou a pensar. Mesmo que a data de lançamento possa ser retroativa a
> data atual, teríamos que ter um campo com a data atual pois, seria com este
> campo que poderíamos fazer isto. Não sei se estou seguindo a mesma linha
> de raciocínio que vc.
> Qual quer coisa dá uma dica.
>> COD     COD_TABELA _A   DATA_LANCAMENTO DATA_VENCIMENTO
>> 1       1                       31/01/2012      31/03/2012
>> 2       1                       31/03/2012      30/06/2012
>> 3       1                       30/06/2012      30/09/2012
>> 4       4                       25/06/2012      25/09/2012
>> 5       2                       31/12/2011      28/02/2012
>> 6       2                       28/02/2012      30/05/2012
>> 7       2                       30/05/2012      30/08/2012
>
> Em 5 de setembro de 2012 12:01, Sandro Souza
> <escovadordebits em gmail.com>escreveu:
>
>> Bom dia/tarde Maycon.
>>
>> Não entendi muito bem a sua lógica, mas vou dar a minha humilde
>> contribuição.
>>
>> Se devemos considerar apenas os lançamentos mais atuais (com data de
>> vencimento maior) de cada item, então talvez os seguintes SQLs sirvam:
>>
>> 1 - Selecionando a maior data de vencimento de cada item da tabela A:
>> *
>> SELECT
>>   COD_TABELA_A ITEM,
>>   MAX(DATA_VENCIMENTO) VENCIMENTO
>> FROM
>>   B
>> GROUP BY
>>   COD_TABELA_A*
>>
>> 2 - Aproventando a consulta anterior para listar os itens vencidos:
>>
>> *SELECT
>>   X.ITEM,
>>   A.DESCRICAO,
>>   X.VENCIMENTO
>> FROM (
>>   SELECT
>>     COD_TABELA_A ITEM,
>>     MAX(DATA_VENCIMENTO) VENCIMENTO
>>   FROM
>>     B
>>   GROUP BY
>>     COD_TABELA_A) X,
>>   A A
>> WHERE
>>   (X.VENCIMENTO < CURRENT_TIMESTAMP)AND
>>   (A.COD = X.ITEM)
>> ORDER BY
>>   A.DESCRICAO*
>>
>> Espero ter ajudado mais que atrapalhado. :D
>>
>> Em 4 de setembro de 2012 18:09, Maycon-Alphametro
>> <maycon em alphametro.com.br>escreveu:
>>
>> > Senhores boa tarde,
>> >
>> >         Tenho duas tabelas,
>> >
>> > Tabela A
>> > COD     DESCRICAO       IDENTIFICACAO
>> > 1       laranja a
>> > 2       abacate b
>> > 3       abobrinha       c
>> > 4       peixe   d
>> > 5       tomate  e
>> >
>> > Tabela B
>> > COD     COD_TABELA _A   DATA_LANCAMENTO DATA_VENCIMENTO
>> > 1       1                       31/01/2012      31/03/2012
>> > 2       1                       31/03/2012      30/06/2012
>> > 3       1                       30/06/2012      30/09/2012
>> > 4       4                       25/06/2012      25/09/2012
>> > 5       2                       31/12/2011      28/02/2012
>> > 6       2                       28/02/2012      30/05/2012
>> > 7       2                       30/05/2012      30/08/2012
>> >
>> > Eu preciso saber tudo o que está vencido, minha consulta deveria trazer
>> > somente os itens que tivessem data de vencimento anterior a data atual,
>> > porém desconsiderar os lançamentos anteriores para o item
>> > exemplo,
>> >
>> > o item 1 da tabela A tem 3 lançamentos, porém o último ainda não venceu,
>> > então não tem itens vencidos
>> >
>> > o item 2 da tabela A tem 3 lançamentos porém tem um que já está vencido
>> > desde 30/08/2012, considerando a data de hoje 04/09/2012
>> >
>> > A quem puder me ajudar muito obrigado.
>> >
>> > Att
>> >
>> > Maycon
>> >
>> >
>> > ______________________________________________
>> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> > Para saber como gerenciar/excluir seu cadastro na lista, use:
>> > http://www.firebase.com.br/fb/artigo.php?id=1107
>> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>> >
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa




Mais detalhes sobre a lista de discussão lista