Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   como contar en un campo en access sin tomar duplicados (https://www.clubdelphi.com/foros/showthread.php?t=11751)

orfeo 24-06-2004 15:13:36

como contar en un campo en access sin tomar duplicados
 
Hola estoy en el proceso de migrar las consultas sql de BDE a ADO Jet4. :(

Estoy usando un db access2000 .mdb con ADO , Delphi 6 y necesito contar los valores de un campo sin que cuente mas de una ves los valores repetidos.

Código SQL [-]
 
          SELECT DISTINCT ins.doc_numero
          FROM   insren as ins
          WHERE Group By ins.doc_numero
          HAVING count(DISTINCT ins.cod_ren) =9

me tira el error: 'la funcion distinct no esta definida en la exprecion'

Alguna idea?

He leido en el foro, un truco para contar que seria hacer una vista con
'select distinctrow * from insren' y luego contar, pero esto no anda para todos lo casos que nececito.

el Jet 4 soporta un 'count(DISTINCT *)'?
porque tampoco puedo contar en un 'Select count(DISTINCT *)'

tcp_ip_es 24-06-2004 18:01:51

Lo he hecho contando los nombres iguales en una tabla y sacará los que se hayan repetido 3 veces
Código SQL [-]
select Totales.nombres, Totales.cuenta
from (select distinct(nombre) as nombres, count (*) as cuenta
from personal
group by nombre) as Totales
where Totales.cuenta=3

Espero que te sirva.... Saludos, Tony

orfeo 25-06-2004 13:33:03

Cita:

Empezado por tcp_ip_es
Espero que te sirva.... Saludos, Tony

Bueno, gracias por contestar, pero no es lo que necesito... (modifique el primer hilo, para que no alla confuciones)

Yo lo que necesito es que los que salen con where 'Totales.cuenta> 1' se cunten una sola ves.

ejem:

Totales.cuenta=(1,2,3,4,2,3)
'count(DISTINCT Totales.cunta)' debe retornar 4 , en cambio un 'count(Totales.cuenta)' retorna un 6

espero que esto explique mejor lo que quiero

marto 25-06-2004 13:55:26

Código SQL [-]

          SELECT count(DISTINCT ins.cod_numero)          
          FROM   insren as ins

¿Esto no te sirve?

jmoran 25-06-2004 14:17:51

Prueba esta:

SELECT COUNT(*) AS TOTAL
FROM (SELECT DISTINCT DOC_NUMERO FROM INSREN)

Te da el número de elementos distintos de la tabla sin contar varias veces los doc_numero iguales

orfeo 28-06-2004 22:49:24

Cita:

Empezado por marto
Código SQL [-]

          SELECT count(DISTINCT ins.cod_numero)          
          FROM   insren as ins

¿Esto no te sirve?

no, el SQL Jet 4.0 (access2000) parece no soportarlo, como contaba tira el error: 'la funcion distinct no esta definida en la exprecion'

marcoszorrilla 28-06-2004 23:00:32

Probaste con DistinctRow

Un Saludo.


La franja horaria es GMT +2. Ahora son las 10:27:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi