Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problema con count(*) y DISTINTC

Estas en el tema de Problema con count(*) y DISTINTC en el foro de Bases de Datos General en Foros del Web. Hola, necesito su ayuda. Estoy trabajando con php y access (odbc) y tengo una sentencia como esta $sql = "SELECT DISTINCT * FROM cristalBodega, tipoCristal ...
  #1 (permalink)  
Antiguo 04/02/2004, 22:17
 
Fecha de Ingreso: enero-2004
Mensajes: 144
Antigüedad: 20 años, 3 meses
Puntos: 0
Problema con count(*) y DISTINTC

Hola, necesito su ayuda. Estoy trabajando con php y access (odbc) y tengo una sentencia como esta


$sql = "SELECT DISTINCT * FROM cristalBodega, tipoCristal WHERE cristalBodega.tipo=tipoCristal.idTipoCristal ORDER BY tipoCristal.tipo, esf";

El DISTINTC es para no mostrar filas repetidas.

Si no le pongo DISTINTC me muestra 19 filas
Si le pongo DISTINTC me muestra 10 filas lo q es correcto

El probema es cuando quiero usar count(*) para saber cuantas son, ya que pongo:

$sql = "SELECT DISTINCT count(*) FROM cristalBodega, tipoCristal WHERE cristalBodega.tipo=tipoCristal.idTipoCristal";

y me dice q tengo 19, y no 10 como debería ser. Reemplaze el count(*) por count([todas las columnas]) y siempre me muestra 19.

Alquien sabe porque pasa esto?
Alguna ayuda o sugerencia???

Gracias
  #2 (permalink)  
Antiguo 05/02/2004, 08:05
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
y porque las filas habrian de estar repetidas? no puede ser que hayan 2 registros iguales, tan solo podrian algunos campos de 2 registros tener los mismos datos, lo demas creo que seria un error.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #3 (permalink)  
Antiguo 05/02/2004, 18:09
 
Fecha de Ingreso: enero-2004
Mensajes: 4
Antigüedad: 20 años, 3 meses
Puntos: 0
INTENTA ASI
$sql = "SELECT count(DISTINCT(*)) FROM cristalBodega, tipoCristal WHERE cristalBodega.tipo=tipoCristal.idTipoCristal";

En oracle sirve (:
  #4 (permalink)  
Antiguo 05/02/2004, 21:35
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
de acuerdo con moni...
tu tienes fuera de count, por lo que el count te devuelve el resultado total... count debe estar englobando al resultado de distinct para asi contar unicamente los elementos no repetidos

saludos
  #5 (permalink)  
Antiguo 07/02/2004, 14:11
 
Fecha de Ingreso: febrero-2004
Mensajes: 3
Antigüedad: 20 años, 2 meses
Puntos: 0
Lo que deberias hacer es un Query anidado, debes de poner el Query general la sentencia Count y en el Query interno, poner el distinct
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 07:59.