Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Felipe Sena

Order By pelo mês corrente

Recommended Posts

Olá pessoal é o seguinte........eu tenho que ordenar uma listagem por datas. Acontece que eu quero trazer primeiros os registros do mês corrente! Só o select não ta funcionando.......alguém pode me ajudar?

 

CODE
SELECT

tb_secao_contatos.bt_titulo,

tb_secao_contatos.bn_id,

tb_secao_contatos.tb_idiomas_bn_id,

tb_secao_contatos.tb_usuarios_bn_id,

tb_secao_contatos.bd_criacao,

tb_secao_contatos.bd_modificacao,

tb_secao_contatos.bd_publicacao,

tb_secao_contatos.bd_expiracao,

tb_secao_contatos.bb_publicacao,

tb_secao_contatos.bt_workflow,

tb_secao_contatos.bt_usuario_criacao,

tb_secao_contatos.bt_usuario_modificacao,tb_secao_contatos.bd_aniversario,

( CASE tb_secao_contatos.bd_aniversario WHEN MONTH(bd_aniversario) = 6 THEN 1 ELSE 0 END ) as mes,

( CASE tb_secao_contatos.bd_aniversario WHEN YEAR(bd_aniversario) = 2008 THEN YEAR(bd_aniversario) ELSE YEAR(bd_aniversario) END ) as ano

FROM

tb_secao_contatos WHERE tb_secao_contatos.tb_idiomas_bn_id = 1

AND DAY(tb_secao_contatos.bd_aniversario) != '00'

AND MONTH(tb_secao_contatos.bd_aniversario) != '00'

AND YEAR(tb_secao_contatos.bd_aniversario) != '0000'

ORDER BY

ano DESC , mes DESC

 

 

Quebrei a cabeça para isso ai........

Compartilhar este post


Link para o post
Compartilhar em outros sites

como assim em relação ao aniversário??

 

é por order de ainversário ou do mês corrente??

 

se é por aniversário não precisa ter o ano, seria melhor ter o dia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É acho que não formulei o tópico corretamente .........rsrs

 

É assim, é um sistema que mostra o aniversário das pessoas só que eu quero que mostre primeiro os registros que fazem aniversário no mês corrente .. entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deus certo!!!!!!!!!!!!!!!!!!! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

 

 

CODE
SELECT

tb_secao_contatos.bt_titulo,

tb_secao_contatos.bn_id,

tb_secao_contatos.tb_idiomas_bn_id,

tb_secao_contatos.tb_usuarios_bn_id,

tb_secao_contatos.bd_criacao,

tb_secao_contatos.bd_modificacao,

tb_secao_contatos.bd_publicacao,

tb_secao_contatos.bd_expiracao,

tb_secao_contatos.bb_publicacao,

tb_secao_contatos.bt_workflow,

tb_secao_contatos.bt_usuario_criacao,

tb_secao_contatos.bt_usuario_modificacao,tb_secao_contatos.bd_aniversario,

IF(MONTH(bd_aniversario) = MONTH(now()),1,2) as mes,

 

FROM

tb_secao_contatos WHERE tb_secao_contatos.tb_idiomas_bn_id = 1

AND DAY(tb_secao_contatos.bd_aniversario) != '00'

AND MONTH(tb_secao_contatos.bd_aniversario) != '00'

AND YEAR(tb_secao_contatos.bd_aniversario) != '0000'

ORDER BY

mes

 

 

 

 

 

Consegui, acontece que a comparação do case devia estar dando problemas agora com a função If eu consegui! Valeu! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha, até que tem um jeito que não é muito complicado, você vai precisar fazer 12 selects, um para cada mês

select nome, mes_aniversario from tabela_pessoa
where mes_aniversario = 'v_mes'
union
select nome, mes_aniversario from tabela_pessoa
where mes_aniversario = 'v_mes' - 1
union
select nome, mes_aniversario from tabela_pessoa
where mes_aniversario = 'v_mes' - 2 
union
select nome, mes_aniversario from tabela_pessoa
where mes_aniversario = 'v_mes' - 3
esse seria o primeiro passo, que você passa o mês pela variável executa o select e o select seguinte faz a mesma consulta mas com um mês menor.

 

 

tem o problema quando o mês zerar e ficar negativo.

Ficaria melhor tu código passar 12 variáveis diferentes.

 

vou ver se descubro alguma outra forma de fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.