[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