Fórum Consulta Sql #412287

01/02/2012

0

Boa noite Pessoal

Precisso ordenar um relatorio em ordem de codigo,
mas os codigos no banco estao da seguinte maneira:
000100, 00202, 01000, 1, 10, ele sai nessa ordem que passei no
relatorio mesmo ordenando pelo codigo. Tentei usar o comando Lpad,
mas nao deu certo. Seria mais facil se eu formatase no banco
colocando os zeros na frente, mas tem um problema na hora que o
cliente for fazer uma venda tera que digitar todos os zeros.
Teria que sair na seguinte ordem o relatorio 1, 10, 000100, 00202, 01000.
Alguem pode me ajudar.

Obrigado
Odair
Odair Vavassori

Odair Vavassori

Responder

Posts

02/02/2012

Rafael Ribeiro

Bom Dia, você não mencionou qual banco sql está utilizando.

Para minha resposta estou utilizando o Firebird 2.1.

Criei uma tabela denominada CODIGO com os seguintes campos IDCODIGO (Integer) e CODIGO (VARCHAR). Adicionei os valores que você passou... 000100, 00202, 01000, 1, 10. E fiz o seguinte Select:

SELECT C.codigo

FROM CODIGO C

ORDER BY CAST(C.codigo AS INTEGER)


E o resultado saiu da forma que vc pediu... 1, 10, 000100, 00202, 01000.

Se desejar que aparece somente como número inteiros, faça o select

SELECT CAST(C.codigo AS INTEGER)

FROM CODIGO C

ORDER BY CAST(C.codigo AS INTEGER)


Espero ter ajudado!

Abçs

Rafael
Responder

Gostei + 0

02/02/2012

Rafael Ribeiro

Bom Dia, você não mencionou qual banco sql está utilizando.

Para minha resposta estou utilizando o Firebird 2.1.

Criei uma tabela denominada CODIGO com os seguintes campos IDCODIGO (Integer) e CODIGO (VARCHAR). Adicionei os valores que você passou... 000100, 00202, 01000, 1, 10. E fiz o seguinte Select:


SELECT C.codigo

FROM CODIGO C

ORDER BY CAST(C.codigo AS INTEGER)


E o resultado saiu da forma que vc pediu... 1, 10, 000100, 00202, 01000.

Se desejar que aparece somente como número inteiros, faça o select

SELECT CAST(C.codigo AS INTEGER)

FROM CODIGO C

ORDER BY CAST(C.codigo AS INTEGER)

Espero ter ajudado!

Abçs

Rafael
Responder

Gostei + 0

03/02/2012

Odair Vavassori

Bom dia

Desculpe esqueci de mencionar o banco, mas utilizo mysql.
O nome da tabela é produtos, codp é o codigo, que é um varchar.

Obrigado

Responder

Gostei + 0

06/02/2012

Odair Vavassori

Boa Noite
Usei o select abaixo ele funcionona se rodar dentro do banco.
SELECT * FROM produtos ORDER BY CAST(codp AS SIGNED)

Mas nao solucionou meu problema, porque estou utilizando um TClientDataSet e tenho
que ordenar pelo FieldName codp, estou usando o comando abaixo mas nao funciona.

if ComboBox2.ItemIndex=0 then
estoquep.IndexFieldNames:=codp


Alguem pode me ajudar

Obrigado
Odair
Responder

Gostei + 0

09/02/2012

Marco Salles

Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar