NUMEROS DISTINTOS
Bom Dia
Tenho uma lista de numeros que podem ou nao se repetir.Preciso selecionar cada numero apenas uma unica vez.
Alguem teria uma rotina para isso?
Exemplo (1,1,1,2,3,3,1,2,4,5,5,5,6,7,8,1,2,4,5,6,5,8,9)
Obrigado a todos.
Tenho uma lista de numeros que podem ou nao se repetir.Preciso selecionar cada numero apenas uma unica vez.
Alguem teria uma rotina para isso?
Exemplo (1,1,1,2,3,3,1,2,4,5,5,5,6,7,8,1,2,4,5,6,5,8,9)
Obrigado a todos.
Select distinct(camponumero) from suatabela
Dessa forma ele puxa apenas 1vez o numero, não importa quantas vezes ele exista no banco
Dessa forma ele puxa apenas 1vez o numero, não importa quantas vezes ele exista no banco
Muito obrigado por sua ajuda Alvaro.
Na verdade eu exibo esses dados em um ListView e os mesmos ja sao resultado de um Select anterior, portanto eu tenho que varrer o ListView em busca de todos os numeros (ID's) para pegar cada um apenas uma vez.
Um Abraço
Sidnei
Na verdade eu exibo esses dados em um ListView e os mesmos ja sao resultado de um Select anterior, portanto eu tenho que varrer o ListView em busca de todos os numeros (ID's) para pegar cada um apenas uma vez.
Um Abraço
Sidnei
Certo
Nesse caso vc pode criar uma variável, guarda o primeiro e vai comparando linha a linha
Ex
Dim Codigo as integer
Dim CodigoGuardado as string
Codigo = primeiro codigo da lista dos seus itens
codigoguardado = [Ô][Ô]
For I = 1 To list.ListItems.Count
If Codigo <> list.ListItems(I).ListSubItems(Campodoseucodigo) Then
codigoguardado= codigoguardado & [Ô],[Ô] & list.ListItems(I).ListSubItems(Campodoseucodigo)
Codigo = list.ListItems(I).ListSubItems(Campodoseucodigo)
End If
Next
msgbox codigoguardado
Seria algo assim, dessa forma ele guarda todos os códigos distintos
Nesse caso vc pode criar uma variável, guarda o primeiro e vai comparando linha a linha
Ex
Dim Codigo as integer
Dim CodigoGuardado as string
Codigo = primeiro codigo da lista dos seus itens
codigoguardado = [Ô][Ô]
For I = 1 To list.ListItems.Count
If Codigo <> list.ListItems(I).ListSubItems(Campodoseucodigo) Then
codigoguardado= codigoguardado & [Ô],[Ô] & list.ListItems(I).ListSubItems(Campodoseucodigo)
Codigo = list.ListItems(I).ListSubItems(Campodoseucodigo)
End If
Next
msgbox codigoguardado
Seria algo assim, dessa forma ele guarda todos os códigos distintos
Dim v() As Integer
Dim vetor() As Integer
ReDim vetor(22)
vetor(0) = 1
vetor(1) = 1
vetor(2) = 1
vetor(3) = 2
vetor(4) = 3
vetor(5) = 3
vetor(6) = 1
vetor(7) = 2
vetor(8) = 4
vetor(9) = 5
vetor(10) = 5
vetor(11) = 5
vetor(12) = 6
vetor(13) = 7
vetor(14) = 8
vetor(15) = 1
vetor(16) = 2
vetor(17) = 4
vetor(18) = 5
vetor(19) = 6
vetor(20) = 5
vetor(21) = 8
vetor(22) = 9
Dim x As Integer
Dim y As Integer
Dim z As Integer
For x = 0 To UBound(vetor)
For y = x + 1 To UBound(vetor)
If vetor(y) < vetor(x) Then
z = vetor(x)
vetor(x) = vetor(y)
vetor(y) = z
End If
Next
Next
y = 1
z = vetor(0)
ReDim v(1)
v(0) = z
For x = 1 To UBound(vetor)
If vetor(x) > z Then
v(y) = vetor(x)
z = vetor(x)
y = y + 1
ReDim Preserve v(y)
End If
Next
For x = 0 To UBound(v) - 1
MsgBox v(x)
Next
Muito obrigado Jaba
Fiz um teste rapido e realmente foram exibidos os numeros apenas uma vez.
A noite colocarei esse codigo dentro do meu projeto e testarei.
Muito obrigado e um Abraço
Fiz um teste rapido e realmente foram exibidos os numeros apenas uma vez.
A noite colocarei esse codigo dentro do meu projeto e testarei.
Muito obrigado e um Abraço
SIDSIL fiz um ajuste no meu exemplo
Que bom.
O que voce mudou?
O que voce mudou?
Alvaro, acho que sua solução não bate com o que ele precisa. Por isso que achei necessário dar um outra solução.
vlw
vlw
SIDSIL
Dim Codigo as integer
Dim CodigoGuardado as string
Codigo = primeiro codigo da lista dos seus itens
codigoguardado = [Ô][Ô]
For I = 1 To list.ListItems.Count
If Codigo <> list.ListItems(I).ListSubItems(Campodoseucodigo) Then
Coloquei essa linha
codigoguardado= codigoguardado & [Ô],[Ô] & list.ListItems(I).ListSubItems(Campodoseucodigo)
Codigo = list.ListItems(I).ListSubItems(Campodoseucodigo)
End If
Next
msgbox codigoguardado
Jaba ela deu apenas um exemplo dos números, más o que ela quer mesmo, é pegar os dados distintos da listview, já que ela carrega o list com os dados do sql
Não esta errado, apresenta o mesmo resultado
Da forma que eu coloquei, ela vai verificando linha a linha do list, adicionando em uma variável e depois exibe todos de uma vez
A diferença é que do meu jeito exibe tudo de uma vez , podemos se quiser fazer um tratamento e exibir um de cada vez e do seu jeito exibe um de cada vez
Depois do que ela precisa os dois casos servem
Dim Codigo as integer
Dim CodigoGuardado as string
Codigo = primeiro codigo da lista dos seus itens
codigoguardado = [Ô][Ô]
For I = 1 To list.ListItems.Count
If Codigo <> list.ListItems(I).ListSubItems(Campodoseucodigo) Then
Coloquei essa linha
codigoguardado= codigoguardado & [Ô],[Ô] & list.ListItems(I).ListSubItems(Campodoseucodigo)
Codigo = list.ListItems(I).ListSubItems(Campodoseucodigo)
End If
Next
msgbox codigoguardado
Jaba ela deu apenas um exemplo dos números, más o que ela quer mesmo, é pegar os dados distintos da listview, já que ela carrega o list com os dados do sql
Não esta errado, apresenta o mesmo resultado
Da forma que eu coloquei, ela vai verificando linha a linha do list, adicionando em uma variável e depois exibe todos de uma vez
A diferença é que do meu jeito exibe tudo de uma vez , podemos se quiser fazer um tratamento e exibir um de cada vez e do seu jeito exibe um de cada vez
Depois do que ela precisa os dois casos servem
Boa Noite Jaba
Na verdade eu testei e é isso o que eu quero.Dentro de uma quantidade de numeros,repetidos ou nao, eu preciso pega-los apenas uma vez.
Mais tarde irei testar dentro do meu sistema.
Um Abraço
Na verdade eu testei e é isso o que eu quero.Dentro de uma quantidade de numeros,repetidos ou nao, eu preciso pega-los apenas uma vez.
Mais tarde irei testar dentro do meu sistema.
Um Abraço
Tópico encerrado , respostas não são mais permitidas