ORDENACAO DE CAMPO

SIDSIL 02/07/2010 21:43:49
#346429
Ola Amigos

Tenho uma Query onde a ordeno por mes e dia.Trata-se da data de aniversario.
Eu gostaria de ter duas ordenacoes,ou seja, depois de ordenar por por mes e dia, gostaria de pegar essa ordenacao e ordenar por ano.

Dessa forma eu teria a data de aniversario ordenada por dia/mes e a seguir por ano.Eu nao posso simplesmente ordenar pela data de aniversario, pois nao eria o resultado que desejo.

No crystal usando formulas, eu consegui resolver esse problema mas no VB6, ficou dificil.

Obrigado e um Abraço
DAVIDNUNES 02/07/2010 23:21:34
#346431
Não entendi muito bem mais com between não da certo?
EDERMIR 02/07/2010 23:46:58
#346433
Tente da seguinte forma:

Select * from TABELA order by MONTH(DATA),DAY(DATA),YEAR(DATA)

Qual é o resultado que você quer? Mostrar os aniversários do dia e em ordem de IDADE?
SIDSIL 03/07/2010 12:04:07
#346442
Muito obrigado pela ajuda amigos

Eu tenho as seguintes datas de aniversario:

01/01/1960
01/01/1950
01/01/1980
01/01/2000
01/01/2010
02/01/1970
02/02/1955
03/05/1985

Como sao datas de aniversario, nao basta apenas ordena-las pela data, pois eu quero que seja feito dessa forma.

01/01/1950
01/01/1960
01/01/1980
01/01/2000
02/01/1970
02/02/1955
03/05/1985

Meu objetivo e exibir na tela todas as datas de aniversario ordenadas mas nao por data e sim em primeiro momento por dia/mes e dentro dessa ordenacao ordenar tambem por ano, como fiz acima.Acima pode ser visto o dia e data de 01/01, com os anos de 1950,1960,1980 e 2000, ordenadas dentro dia dia/mes.

Logicamente eu tenho varias datas com mesmo dia/mes e com anos diferentes.E esse tido de ordenacao que eu quero.

Sera que agora deu para entender?

Obrigado e um Abraço
ENGALEXANDRE 05/07/2010 11:35:04
#346522
Ao invés de usar o campo com o tipo de dado DATA, mude o tipo para STRING (VARCHAR, CHARACTER VARYING,...) daí a ordenação se dará consederando que o texto escrito é uma String e não uma Data.
Mas preste atenção: se o objetivo é primeiro ordenar por DIA/MÊS, uma data do tipo 06/01/2010 aparecerá depois de, por exemplo, 03/05/2010, já que os caracteres 06 são [Ô]maiores[Ô] que os caracteres 03. Caso queira que a ordenação comece pelo mês, troque a ordem DIA/MÊS por MÊS/DIA.

Se tiver dúvida, escreva!

Alexandre
EDERMIR 05/07/2010 11:45:44
#346525
Citação:

:
Tente da seguinte forma:

Select * from TABELA order by MONTH(DATA),DAY(DATA),YEAR(DATA)

Qual é o resultado que você quer? Mostrar os aniversários do dia e em ordem de IDADE?



Deu pra entender. A solução acima não funcionou?
Tópico encerrado , respostas não são mais permitidas