Página 1 de 1
ORDENAR POR NUMERO E DATA
Enviado: 15 Jul 2004 17:39
por ERASMO ANDRIOLI
COLEGAS....
Please... My Help...
Seguinte: Estou fazendo uma indexação assim:
INDEX ON CODIGO + VAL(DTOC(DATA_GAS)) TO SIG_GASD
Estou percebendo que o sistema não está ordenando o arquivo pelo CODIGO + DATA... apenas pelo CODIGO (a data esta ficando fora de ordem)...
Já tentei assim tambem:
INDEX ON CODVEI + VAL(DTOS(DATA_GAS)) TO SIG_GASD
... trocando apenas de DTOC para DTOS... más ai fica mais bagunçado ainda... por favor me ajudem!!!!!
Abraços
Erasmo Andrioli
Sorriso-MT

Enviado: 15 Jul 2004 17:45
por Claudio Farias
Erasmo
Tudo bem ??
Me tire uma dúvida, vc está indexando 2 campos numéricos ??
Codigo + Val( ..... )
Claudio Farias
Enviado: 15 Jul 2004 17:59
por Toledo
Erasmo,
A chave de indexação de um arquivo de índice de preferência tem que ser do tipo caracter.
Neste caso, se a resposta a pergunta do nosso amigo Cláudio Farias é sim, você tem então que usar a seguinte chave:
INDEX ON STRZERO(CODIGO,6) + DTOS(DATA_GAS) TO SIG_GASD
Na função STRZERO() usei o tamanho 6, mas você pode utilizar o tamanho do campo CODIGO.
Abraços,
Enviado: 16 Jul 2004 08:01
por janio
Ao Toledo,
Aproveitando a oportunidade, gostaria de fazer uma indagação:
Já indexei campos de DATAS semelhante a este exemplo aqui postado e percebi (não sei se é assim mesmo) que o sistema indexou as DATAS levando em consideração somente os DIAS e não também (como tem que ser) os MESES. Exemplo: Se eu tenho por exemplo as datas:
13/06/2004
15/07/2004
12/07/2004
ele indexou assim:
12/07/2004
13/06/2004
15/07/2004
Pergunto: É assim mesmo, ou estou fazendo algo de errado?
Janio -
janioaguiar@yahoo.com.br
Enviado: 16 Jul 2004 10:33
por Jorge Adourian
Erasmo, siga a dica do Toledo. Lembre-se que indexar DATA usando o VAL() é um grande absurdo, nunca faça isto.
Janio, sempre que indexar por DATA deve-se usar a data invertida [aaaammdd] usando o DTOS() para converte-la.
Enviado: 16 Jul 2004 11:22
por kiko
eu faria assim:
INDEX ON STRZERO(CODIGO,*)+DTOS(DATA_GAS) TO SIG_GASD
onde * eh o tamanho do campo numerico que vc criou no seu banco de dados.....
Enviado: 16 Jul 2004 12:51
por Toledo
Janio,
Na chave de indexação um campo DATA deve sempre ser usado com o DTOS().
No seu exemplo:
13/06/2004
15/07/2004
12/07/2004
utilizando DTOS(), ficaria assim:
20040613
20040712
20040715
Abraços,
Enviado: 18 Jul 2004 10:26
por janio
Valeu Toledo e amigos do Fórum.
Funcionou beleeeeeezzzzzaaaaaaa!
Janio