SELECT DISTINCT , ONDE ESTOU ERRANDO?

JORGESALES 07/02/2016 18:19:10
#457313
Pessoal, olha eu aqui de novo, já conheço esse comando mas
o resultado insiste em vir duplicado, tentei de várias formas mas não adiantou:
rs.Open [Ô]Select Distinct Codigo,Empresa,CNPJ from tblCad where CNPJ like[ô][Ô] & txt & [Ô]%[ô] group by Empresa,Codigo,CNPJ[Ô], db, 3, 3

rs.Open [Ô]Select Distinct Codigo,Empresa,CNPJ from tblCad where CNPJ like[ô][Ô] & txt & [Ô]%[ô][Ô], db, 3, 3

rs.Open [Ô]Select Codigo,Empresa,CNPJ from tblCad where CNPJ like[ô][Ô] & txt & [Ô]%[ô] group by Empresa,Codigo,CNPJ[Ô], db, 3, 3

rs.Open [Ô]Select Distinct * from tblCad where CNPJ like[ô][Ô] & txt & [Ô]%[ô][Ô], db, 3, 3

Nenhum deles apresenta erro mas todos trazem resultados duplicados....

Alguém pode ajudar?
NILSONTRES 07/02/2016 21:58:05
#457320
Provavelmente o problema esteja aqui:
group by Empresa,Codigo,CNPJ[Ô]
se o cnpj é unico porque não agrupar só por cnpj ?
Outra coisa, distinct com like é meio sem sentido, inclusive não sei nem se funciona, não sei qual situação ou motivo vc tem para isso, passe mais detalhes.
JORGESALES 07/02/2016 23:00:52
#457322
Nilson,
Eu estou buscando os cnpj's que tenho no banco de dados e
não gostaria que fossem exibidos os campos repetidos, obrigado
por sua ajuda, acho que com o [txt-color=#0000f0]Like[/txt-color]
não funciona não.
MARIOANDRADE 07/02/2016 23:04:02
#457323
Resposta escolhida
Se estiver exibindo os dados em uma listview poderá
remover os itens repetidos após o preenchimento, segue código:
    Option Explicit  

[ô] ----------------------------------------------------------------------------------
[ô] \\ -- Función para elimiar los elementos duplicados
[ô] ----------------------------------------------------------------------------------
Private Function Eliminar_Item_ListView(ListView As ListView) As Long

[ô] -- Variables
Dim i As Long
Dim j As Long
Dim ret As Long [ô] -- total de items que se eliminan

With ListView
[ô] -- Recorrer todos los items
For i = 1 To .ListItems.Count
[ô] -- Comparar uno a uno con todos los demás
For j = i + 1 To .ListItems.Count
If .ListItems.Item(i) = .ListItems.Item(j) Then
[ô] -- Si es igual eliminar
.ListItems.Remove .ListItems.Item(j).Index
j = j - 1
ret = ret + 1
End If
If j = .ListItems.Count Then
Exit For
End If
Next

If i = .ListItems.Count Then
[ô] -- Retorna el valor de la función con _
la cantidad de elementos eliminados
Eliminar_Item_ListView = ret
Exit Function
End If
Next
End With

End Function
[ô] ---------------------------------------------------------------------------
[ô] \\ -- Botón para llamar a la función
[ô] ---------------------------------------------------------------------------
Private Sub Command1_Click()
[ô] -- llamamos a la función pasandole el control ListView
MsgBox [Ô] Elementos que se eliminaron: [Ô] & Eliminar_Item_ListView(ListView1), vbInformation, [Ô] Resultado [Ô]
End Sub
[ô] ---------------------------------------------------------------------------
[ô] \\ -- Inicio
[ô] ---------------------------------------------------------------------------
Private Sub Form_Load()

With ListView1
Dim i As Integer
[ô] -- Agregar 10 elementos al Listview
For i = 0 To 10
ListView1.ListItems.Add , , i
Next

[ô] -- Agregar los mismos elementos que antes para que estén duplicados
For i = 0 To 10
ListView1.ListItems.Add , , i
Next
.View = lvwList
End With
Command1.Caption = [Ô] Eliminar duplicados [Ô]
Me.Caption = [Ô] Ejemplo para eliminar elementos repetidos en un control ListView [Ô]
End Sub

Espero ter ajudado.
JORGESALES 07/02/2016 23:21:01
#457324
Professor muito obrigado, não tinha pensado nessa possibilidade,
resolveu
Tópico encerrado , respostas não são mais permitidas