Fórum Consulta Sql #412287
01/02/2012
0
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
Curtir tópico
+ 0Posts
02/02/2012
Rafael Ribeiro
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
Gostei + 0
02/02/2012
Rafael Ribeiro
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
Gostei + 0
03/02/2012
Odair Vavassori
Desculpe esqueci de mencionar o banco, mas utilizo mysql.
O nome da tabela é produtos, codp é o codigo, que é um varchar.
Obrigado
Gostei + 0
06/02/2012
Odair Vavassori
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
Gostei + 0
09/02/2012
Marco Salles
ver solução em :
https://www.devmedia.com.br/forum/delphi/412515-Ordenar-pelo-ClientDataSet.html
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)