[firebase-br] RES: RES: RES: RES: RES: Ajuda com SQL e datas + Informação
Maycon-Alphametro
maycon em alphametro.com.br
Ter Out 2 20:00:00 -03 2012
André boa noite, estou com uma dificuldade em adicionar mais uma tabela ao
SQL
Eu teria que trazer um campo de uma 3ª tabela que está relacionada
com a tabela A, poderia me ajudar, por gentileza ?
Seria por exemplo a tabela C e seu campo código estaria relacionado
com a tabela A como cod_tabela_C
Att
Maycon
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de André Conrado
Enviada em: sexta-feira, 21 de setembro de 2012 13:45
Para: FireBase
Assunto: Re: [firebase-br] RES: RES: RES: RES: Ajuda com SQL e datas +
Informação
use este SELECT COMO uma sub-consulta:
SELECT A.COD, A.DESCRICAO, A.IDENTIFICACAO, B.VENCIMENTO FROM TABELA_A A
INNER JOIN (SELECT COD_TABELA_A
FROM B
GROUP BY COD_TABELA_A
HAVING MAX(DATA_VENCIMENTO) < CURRENT_TIMESTAMP) B ON A.COD =
B.COD_TABELA_A
Abs
Em 21 de setembro de 2012 08:25, Maycon-Alphametro
<maycon em alphametro.com.br> escreveu:
> Prezado André, perfeito, funcionou, porém agora eu me só mais uma
> ajudinha, se eu precisasse trazer mais campos da tabela A como
> descrição e identificação, como estou usando o group by ele dá erro,
> poderia me dar mais essa colher de chá ??
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br
> [mailto:lista-bounces em firebase.com.br] Em nome de André Conrado
> Enviada em: quinta-feira, 20 de setembro de 2012 18:36
> Para: FireBase
> Assunto: Re: [firebase-br] RES: RES: RES: Ajuda com SQL e datas +
> Informação
>
> tente:
>
> SELECT COD_TABELA_A
> FROM B
> GROUP BY COD_TABELA_A
> HAVING MAX(DATA_VENCIMENTO) < CURRENT_TIMESTAMP
>
> Abs
>
> Em 20 de setembro de 2012 17:48, Maycon-Alphametro
> <maycon em alphametro.com.br> escreveu:
>> Veja a resposta abaixo
>>
>> " 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."
>>
>> O que preciso é analisar vários registros, com datas variadas e
>> encontrar os que estão vencendo dentro do mês por exemplo, porém
>> porém se eu pegar menor que data atual ele trará todos os registros
>> de todos os itens e na verdade pode ter itens que não estejam vencidos ou
a vencer.
>>
>> Não sei se ficou clara minha dúvida, caso contrário por gentileza me
>> informem que tento elaborar outro exemplo
>>
>> -----Mensagem original-----
>> De: lista-bounces em firebase.com.br
>> [mailto:lista-bounces em firebase.com.br] Em nome de André Conrado
>> Enviada em: quinta-feira, 20 de setembro de 2012 17:08
>> Para: FireBase
>> Assunto: Re: [firebase-br] RES: RES: Ajuda com SQL e datas +
>> Informação
>>
>> Porque o SELECT que o Sandro passou não funciona?
>>
>> Em 20 de setembro de 2012 07:33, Maycon-Alphametro
>> <maycon em alphametro.com.br> escreveu:
>>> Maurício bom dia,
>>>
>>> Cara desculpa pela insistência, mais é que estou perdido com esse
>>> select, na verdade a minha necessidade é trazer sempre o último
>>> registro de cada código da tabela A e que tenha vencimento maior que
>>> a data de hoje, do contrário a consulta retorna vazia, não sei se
>>> consegui esclarecer melhor
>>>
>>> -----Mensagem original-----
>>> De: lista-bounces em firebase.com.br
>>> [mailto:lista-bounces em firebase.com.br] Em nome de MAURICIO COSTA
>>> Enviada em: segunda-feira, 10 de setembro de 2012 18:55
>>> Para: FireBase
>>> Assunto: Re: [firebase-br] RES: Ajuda com SQL e datas
>>>
>>> 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
>>>>
>>> ______________________________________________
>>> 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
>>
>>
>> ______________________________________________
>> 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
______________________________________________
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