Consulta Sql
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
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
Curtidas 0
Respostas
Rafael Ribeiro
01/02/2012
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:
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
Espero ter ajudado!
Abçs
Rafael
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
Rafael Ribeiro
01/02/2012
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
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
Odair Vavassori
01/02/2012
Bom dia
Desculpe esqueci de mencionar o banco, mas utilizo mysql.
O nome da tabela é produtos, codp é o codigo, que é um varchar.
Obrigado
Desculpe esqueci de mencionar o banco, mas utilizo mysql.
O nome da tabela é produtos, codp é o codigo, que é um varchar.
Obrigado
GOSTEI 0
Odair Vavassori
01/02/2012
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
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
Marco Salles
01/02/2012
duplicado
ver solução em :
https://www.devmedia.com.br/forum/delphi/412515-Ordenar-pelo-ClientDataSet.html
ver solução em :
https://www.devmedia.com.br/forum/delphi/412515-Ordenar-pelo-ClientDataSet.html
GOSTEI 0