Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

no contar los duplicados de una tabla

Estas en el tema de no contar los duplicados de una tabla en el foro de Visual Basic clásico en Foros del Web. Buenas buenas comundad programadora tengo otro problemita por ahi.... necesito contar la cantidad de proveedores que tengo en un campo pero en ese mismo campo ...
  #1 (permalink)  
Antiguo 08/07/2011, 10:05
Avatar de ARGFA  
Fecha de Ingreso: noviembre-2009
Ubicación: Ciudad Guayana, Venezuela
Mensajes: 55
Antigüedad: 14 años, 5 meses
Puntos: 0
no contar los duplicados de una tabla

Buenas buenas comundad programadora
tengo otro problemita por ahi....
necesito contar la cantidad de proveedores que tengo en un campo
pero en ese mismo campo algunos proveedores estan repetidos..
entoncs no puedo aplicar un contador de registros porque me daria mas proveedors de lo que en realidad hay.

si alguien tiene una idea de como hacerlo se los agradeceria.
aqui les adjunto un codigo que cree pero funciona solo si los proveedores repetidos estan seguido uno del otro. pero si uno esta al final y otro al principio los contara como dos proveedores distintos.

Código vb:
Ver original
  1. 'recorro los proveedores almacenados para ver cuants son en total
  2. Set rscantprove = myconn2.Execute("SELECT codigo_proveedor FROM tb1")
  3.     While Not rscantprove.EOF
  4.         'verifico que no me cuente dos veces el mismo proveedor
  5.        If Not n = rscantprove!codigo_proveedor Then
  6.             contador = contador + 1
  7.         End If
  8.     n = rscantprove!codigo_proveedor
  9.     rscantprove.MoveNext
  10.     Wend

GRACIAS POR SU TIEMPO
  #2 (permalink)  
Antiguo 08/07/2011, 10:21
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: no contar los duplicados de una tabla

Si solo quieres la obtener el número puedes realizar un COUNT con DISTINCT para que no te tome los que son repetidos:

Código vb:
Ver original
  1. Set rscantprove = myconn2.Execute("SELECT COUNT (DISTINCT codigo_proveedor) cuenta FROM tb1")
  2.     While Not rscantprove.EOF      
  3.     n = rscantprove!cuenta
  4.     rscantprove.MoveNext
  5.     Wend
  #3 (permalink)  
Antiguo 08/07/2011, 10:30
Avatar de ARGFA  
Fecha de Ingreso: noviembre-2009
Ubicación: Ciudad Guayana, Venezuela
Mensajes: 55
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: no contar los duplicados de una tabla

oye no sabia esas funciones del sql, eso era lo que me faltaba para la consulta, pero lo estoy probando y me da error de sintaxis...

error en al expresion de consulta COUNT (DISTINCT codigo_proveedor) cuenta
(falta operador)
  #4 (permalink)  
Antiguo 08/07/2011, 10:43
Avatar de ARGFA  
Fecha de Ingreso: noviembre-2009
Ubicación: Ciudad Guayana, Venezuela
Mensajes: 55
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: no contar los duplicados de una tabla

LO TENGO ASI AHORA:
Código vb:
Ver original
  1. Set rscantprove = myconn2.Execute("SELECT COUNT (DISTINCT(codigo_proveedor))  FROM tb1")

Y ME DA EL SIGUIENTE ERROR:
la funcion 'distinct' no esta definida en al expresion
  #5 (permalink)  
Antiguo 08/07/2011, 11:24
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: no contar los duplicados de una tabla

Prueba con AS a ver si es eso:

Código vb:
Ver original
  1. Set rscantprove = myconn2.Execute("SELECT COUNT (DISTINCT codigo_proveedor) as cuenta FROM tb1")
  2.     While Not rscantprove.EOF      
  3.     n = rscantprove!cuenta
  4.     rscantprove.MoveNext
  5.     Wend
  #6 (permalink)  
Antiguo 08/07/2011, 11:39
Avatar de ARGFA  
Fecha de Ingreso: noviembre-2009
Ubicación: Ciudad Guayana, Venezuela
Mensajes: 55
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: no contar los duplicados de una tabla

Código vb:
Ver original
  1. Set rscantprove = myconn2.Execute("SELECT COUNT  (DISTINCT(codigo_proveedor)) AS cuenta FROM tb1")
  2.     Print rscantprove!cuenta

asi lo tengo pero me dice q la fucion 'distinct' no esta definda en la expresion.

si le quito el distinct y le dejo el count, me funciona sin problemas pero contando todos los registros.
  #7 (permalink)  
Antiguo 08/07/2011, 11:52
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: no contar los duplicados de una tabla

Quítale los paréntesis después de DISTINCT:

NO:
COUNT (DISTINCT(codigo_proveedor))

SÍ:

COUNT (DISTINCT codigo_proveedor)
  #8 (permalink)  
Antiguo 08/07/2011, 12:00
Avatar de ARGFA  
Fecha de Ingreso: noviembre-2009
Ubicación: Ciudad Guayana, Venezuela
Mensajes: 55
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: no contar los duplicados de una tabla

Código vb:
Ver original
  1. Execute("SELECT COUNT (DISTINCT codigo_proveedor) AS cuenta FROM tb1")

el miso eror anterior hermano... he probado mil opciones.
error de sintaxis (falta operador) en la expresion de consulta 'COUNT (DISTINCT codigo_proveedor)
  #9 (permalink)  
Antiguo 08/07/2011, 12:19
Avatar de ARGFA  
Fecha de Ingreso: noviembre-2009
Ubicación: Ciudad Guayana, Venezuela
Mensajes: 55
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: no contar los duplicados de una tabla

nada todavia :S sera por el access? estoy usando el 2003
  #10 (permalink)  
Antiguo 08/07/2011, 13:15
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 5 meses
Puntos: 6
Respuesta: no contar los duplicados de una tabla

No se como haces la seleccione de registros pero esto deberia de funcionar

Código:
"SELECT DISTINCT codigo_proveedor FROM tb1")
n = rscantprove.RecordCount
haber que tal
  #11 (permalink)  
Antiguo 08/07/2011, 13:55
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: no contar los duplicados de una tabla

Ah, si es Access claro. Yo pensaba que era SQLServer. Eso me pasa por no preguntar. Hazlo como te ha dicho SalomonSab, que debería funcionarte.
  #12 (permalink)  
Antiguo 08/07/2011, 18:53
Avatar de Kruzado  
Fecha de Ingreso: marzo-2007
Mensajes: 307
Antigüedad: 17 años, 1 mes
Puntos: 17
Respuesta: no contar los duplicados de una tabla

SELECT max(codigo_proveedor) as cuenta FROM tb1 group by codigo_proveedor

n = rscantprove.RecordCount

eso te agrupa todos los proveedores repetidos en un solo registro, luego recordcount los cuenta, pruebalo y nos avisas ;)
  #13 (permalink)  
Antiguo 11/07/2011, 12:42
Avatar de ARGFA  
Fecha de Ingreso: noviembre-2009
Ubicación: Ciudad Guayana, Venezuela
Mensajes: 55
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: no contar los duplicados de una tabla

epalexxxx..... bueno si era por el access, no permite el count y el distinct al mismo tiempo. la forma en q lo resolvi fue haciendo el distinct pimero y luego el count....

gracias a todos por su colaboracion.

Etiquetas: duplicados, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:40.