Fórum Para os Feras em SQL/INTERBASE #37358
12/07/2003
0
Vejam a query abaixo:
SELECT P.DT_NASCIMENTO, P.ST_NOME
FROM PESSOA P
WHERE EXTRACT(DAY FROM P.DT_NASCIMENTO) BETWEEN 1 AND 10
AND EXTRACT(MONTH FROM P.DT_NASCIMENTO) = 1
ORDER BY P.DT_NASCIMENTO
Nesta query seleciono os registro que tem o dia da data de nascimento entre 1 e 10, e o mês 1 (janeiro).
Só que preciso que seja ordenada pelo DIA e não pela data. Quero mandar cartas de aniversário, para isso o ANO de nascimento não importa, concordam?
Desse modo que fiz quem nasceu dia 7/1/1995 vem antes de quem nasceu 1/1/2001 pois o ano 1995 é menor que 2001.
Já tentei dar um order by como abaixo, mas não funcionou.
ORDER BY EXTRACT(MONTH FROM P.DT_NASCIMENTO)
Por favor, ajude-me.
Roberto Santos Silva
Brasília-DF
SELECT P.DT_NASCIMENTO, P.ST_NOME
FROM PESSOA P
WHERE EXTRACT(DAY FROM P.DT_NASCIMENTO) BETWEEN 1 AND 10
AND EXTRACT(MONTH FROM P.DT_NASCIMENTO) = 1
ORDER BY P.DT_NASCIMENTO
Nesta query seleciono os registro que tem o dia da data de nascimento entre 1 e 10, e o mês 1 (janeiro).
Só que preciso que seja ordenada pelo DIA e não pela data. Quero mandar cartas de aniversário, para isso o ANO de nascimento não importa, concordam?
Desse modo que fiz quem nasceu dia 7/1/1995 vem antes de quem nasceu 1/1/2001 pois o ano 1995 é menor que 2001.
Já tentei dar um order by como abaixo, mas não funcionou.
ORDER BY EXTRACT(MONTH FROM P.DT_NASCIMENTO)
Por favor, ajude-me.
Roberto Santos Silva
Brasília-DF
Tenil
Curtir tópico
+ 0
Responder
Posts
12/07/2003
Baddream
Faça um order by com o número da coluna, e coloque o dia do nascimento no query:
SELECT EXTRACT(DAY FROM P.DT_NASCIMENTO),P.DT_NASCIMENTO, P.ST_NOME
FROM PESSOA P
WHERE EXTRACT(DAY FROM P.DT_NASCIMENTO) BETWEEN 1 AND 10
AND EXTRACT(MONTH FROM P.DT_NASCIMENTO) = 1
ORDER BY 1,2
O comando ORDER BY 1,2 indica para o firebird que você quer ordenar pela coluna 1 (extract day from p.dt_nascimento) e, quando essas forem iguais, ordenar pela data de nascimento. Funciona, sem problemas, no Firebird 1.0.2.
Acredito que assim o comando funcionará da forma que você quer. 8)
SELECT EXTRACT(DAY FROM P.DT_NASCIMENTO),P.DT_NASCIMENTO, P.ST_NOME
FROM PESSOA P
WHERE EXTRACT(DAY FROM P.DT_NASCIMENTO) BETWEEN 1 AND 10
AND EXTRACT(MONTH FROM P.DT_NASCIMENTO) = 1
ORDER BY 1,2
O comando ORDER BY 1,2 indica para o firebird que você quer ordenar pela coluna 1 (extract day from p.dt_nascimento) e, quando essas forem iguais, ordenar pela data de nascimento. Funciona, sem problemas, no Firebird 1.0.2.
Acredito que assim o comando funcionará da forma que você quer. 8)
Responder
Gostei + 0
12/07/2003
Tenil
Kra, valeu, funcionou!!!
Muito obrigado.
Olha como ficou o final:
SELECT EXTRACT(DAY FROM P.DT_NASCIMENTO) ST_DIA, P.*
FROM PESSOA P
WHERE EXTRACT(DAY FROM P.DT_NASCIMENTO) BETWEEN 1 AND 10
AND EXTRACT(MONTH FROM P.DT_NASCIMENTO) = 1
ORDER BY 1, P.ST_NOME
Valeu brother.
Muito obrigado.
Olha como ficou o final:
SELECT EXTRACT(DAY FROM P.DT_NASCIMENTO) ST_DIA, P.*
FROM PESSOA P
WHERE EXTRACT(DAY FROM P.DT_NASCIMENTO) BETWEEN 1 AND 10
AND EXTRACT(MONTH FROM P.DT_NASCIMENTO) = 1
ORDER BY 1, P.ST_NOME
Valeu brother.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)