[firebase-br] RES: Ajuda com SQL e datas

MAURICIO COSTA maximmumsistemas em gmail.com
Seg Set 10 18:55:22 -03 2012


Estou analisando aqui para poder fazer o sql mas, é a lógica que acho que
esta dificultando. Veja os dados da tabela como você colocou.
> 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
olhando para a última linha onde você descreve que esta vencida, pois
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.
Esta linha que você comenta, levando em consideração a regra de negócio ela
foi lançada em 30/05/2012 certo pois, o sistema guarda no campo
DATA_LANCAMENTO e que esta data é inserida pelo próprio sistema ou usuário
pode alterar esta data?
Pois você comentou que o dia de hoje é 04/09/2012. Levando em consideração
a última linha que você comenta que só ela deveria trazer como vencida mas,
como se o vencimento é 30/08/2012 e quando ela foi lançada era 30/05/2012
ou seja ela foi lançada antes de se vencer. Mas, resumindo. Descreva a
regra de negócio para possamos entender e solucionar o problema, é que
solicitando apenas o select não fica muito claro.

Em 10 de setembro de 2012 08:55, Maycon-Alphametro <maycon em alphametro.com.br
> escreveu:

> Bom dia Sandro, primeiramente me desculpe pela demora no retorno,
>
>         Seguinte,fiz um teste com o seu SQL, mais ainda estou com
> problemas,
> por exemplo o item 1 se eu fizer o seu SQL como a data de 30/09/2012 não
> chegou ele trará a data de 30/06/2012, e isso não é verdade pois o item não
> está vencido, nesse caso ele não deveria trazer nada pois eu tenho uma data
> que é superior a data atual.
>
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
> Em
> nome de Sandro Souza
> Enviada em: quarta-feira, 5 de setembro de 2012 12:01
> Para: FireBase
> Assunto: Re: [firebase-br] Ajuda com SQL e datas
>
> 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