| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/12/2011 12:14:19
|
fabiobh
JavaEvangelist
Membro desde: 30/12/2010 13:56:57
Mensagens: 386
Offline
|
a soluçao do ADEMILTON teria sido ideal se eu tivesse conseguido fazer funcionar,
eu não soube passar ela corretamente
o que eu posso estar escrevendo errado nesta sentença abaixo
no mysql workbench acusa erro na linha 2 no 'when'
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/12/2011 12:56:46
|
evefuji
GUJ Ranger
Membro desde: 14/12/2007 22:37:17
Mensagens: 756
Offline
|
Faz tempo que não mexo com mysql (agora estou mais com oracle e postgres), mas vou fazer umas observações:
1. No Oracle, quando você faz diferença de datas, ele retorna o número de dias, no mysql, como data é tratada no formato Unix, não é possível fazer essa diferença. (se me lembro bem)
2. Para cálculo de idade no Oracle, eu costumava usar a diferença de datas em meses. Se tiver uma função no MySQL que faça a diferença de datas e retorne em meses ou ano, seria melhor (e teria o melhor desempenho)
3. No mysql, se me lembro bem, é Floor. A ideia da lógica é "truncar" o número usando o valor de intervalos, segue um exemplo:
É mais rápido usar cálculos aritméticos que "case when". No caso, coloquei só o valor inicial no Case When porque agrupa todos os valores menores que 20.
Edit: Acusa erro no segundo WHEN porque não colocou o valor que retorna no "THEN" anterior.
This message was edited 1 time. Last update was at 21/12/2011 12:57:33
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/12/2011 13:40:03
|
fabiobh
JavaEvangelist
Membro desde: 30/12/2010 13:56:57
Mensagens: 386
Offline
|
evefuji wrote:Acusa erro no segundo WHEN porque não colocou o valor que retorna no "THEN" anterior.
Como vc falou estava esquecendo o retorno, mas agora q coloquei funcionou.
evefuji wrote: No mysql, se me lembro bem, é Floor
Sim, o trunc não funciona no mysql, o floor resolve o problema.
Eu entendi sua logica, vou ver se consigo fazer o Mysql devolver o valor da data em anos para poder gerar essa sentença, caso não consiga a solução do case when funciona e eu vou tentar me virar com ela.
Obrigado a todos por ajudarem, a galera do GUJ detona mesmo, vlw e t+
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/12/2011 15:52:24
|
evefuji
GUJ Ranger
Membro desde: 14/12/2007 22:37:17
Mensagens: 756
Offline
|
só uma coisa que me toquei agora, na lógica:
((curdate() - pes_data_nascimento) / 365.25)
Se o cara tiver mais de 100 anos vai dar diferença de 1 dia. (a cada 100 anos não tem 1 dos anos bissextos, e a cada 1000 anos "volta" esse ano bissexto que não deveria ter)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2011 08:51:12
|
Lindberg
JavaEvangelist
![[Avatar]](/images/avatar/a18aa23ee676d7f5ffb34cf16df3e08c.jpg)
Membro desde: 02/05/2006 19:23:53
Mensagens: 363
Offline
|
eu faria assim no mysql ...
1 - criaria uma tabela temporaria ...
2 - nesta tabela tem tudo que preciso ...
da uma olhada no exemplo que fiz, ver se ajuda !!!!
---------------------------------------
existe uma ganbiarra ... mas funciona !
t+
This message was edited 1 time. Last update was at 22/12/2011 08:56:48
|
Aqui... A turma é D+++. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2011 17:29:17
|
pmlm
GUJ Master
Membro desde: 20/04/2009 12:20:07
Mensagens: 1201
Localização: Portugal
Offline
|
E porque não criar uma tabela com os intervalos de idade? Com valor mínimo e máximo de cada intervalo e sua descrição
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/12/2011 12:15:40
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
Excelente solucao. Parametrizou os intervalos e o dia em que eles alterara, basta mudar a parametrizacao sem alterar o codigo. Parabens.
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
|
|