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

Mostrar registros 0 con count(*) en mysql

Estas en el tema de Mostrar registros 0 con count(*) en mysql en el foro de Mysql en Foros del Web. Buenas noches, Tengo la siguiente inquietud, como puedo mostrar los valores que estan en 0 con un count(*)? hay registros que estan en 0 porque ...
  #1 (permalink)  
Antiguo 06/12/2011, 18:17
 
Fecha de Ingreso: septiembre-2011
Mensajes: 32
Antigüedad: 12 años, 7 meses
Puntos: 1
Busqueda Mostrar registros 0 con count(*) en mysql

Buenas noches,

Tengo la siguiente inquietud, como puedo mostrar los valores que estan en 0 con un count(*)? hay registros que estan en 0 porque no hay movimiento y necesito mostrarlos, estos datos no se cruzan con ninguna tabla, estan en la misma. he intentado con isnull, ifnull, coalsce (o como se escriba) y no me los trae y necesito armar una tabla incluyendo dichos valores.

Por su colaboracion muchas gracias.

Última edición por medcol; 06/12/2011 a las 18:19 Razón: titulo errado
  #2 (permalink)  
Antiguo 06/12/2011, 18:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mostrar registros 0 con count(*) en mysql

Es un poco difícil responder tu pregunta porque no se comprende bien el contexto.
- Si estás usando COUNT(), implica que también estás usando GROUP BY, y estás contando las apariciones de valores en un determinado campo.
- Si la cuenta devuelve cero al agrupar sobre un campo, eso sólo puede darse si el COUNT() se hace sobre un campo dado, es decir tienes algo como
Código MySQL:
Ver original
  1. FROM tabla
en ese caso, COUNT() sólo devuelve cero si encuentra NULL. Si hubiese un cero, lo contaría como válido.
- Si ese campo tiene NULL hacer un
Código MySQL:
Ver original
  1. SELECT a, b
  2. FROM tabla
debería devolverte todos los registros donde haya NULL en b. Pero tu dices que eso no resulta...

¿Podrías postear la consulta que estás efectivamente haciendo para saber qué es lo que se supone que intentas lograr?
Será mas fácil entender todo viendo lo que haces.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 06/12/2011, 18:50
 
Fecha de Ingreso: septiembre-2011
Mensajes: 32
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Mostrar registros 0 con count(*) en mysql

Gracias por responder

tengo las siguientes tablas

en la tabla operaciones tengo lo siguiente

nombre_campana| rangoini
---------------------- -----------
olimpo 0011
zeus 0012
orion 0013

y en la tabla.datos tengo
reg fecha codigo tipo
------ --------------- -------- -----------
1250 2011-11-16 0011 1
0 2011-11-17 0013 1
5240 2011-11-16 0012 2
125 2011-11-18 0011 2

SELECT operaciones.nombre_campana, COUNT(*) AS registros FROM tabla.datos, tabla.operaciones WHERE datos.codigo=operaciones.RANGOINI AND datos.FECHA BETWEEN '$fini' AND '$ffin' AND datos.TIPO='$tipo' GROUP BY datos.codigo

la relacion datos.OPERACION=operaciones.RANGOINI es solo para mostrar el nombre de la campana en la consulta.

si ejecuto el select de esta manera, no me muestra el registro que esta en 0, solo me cuenta los que agrupa el count() el que esta en 0 no lo toma y estoy hablando de 600.000 registros y en aumento.

gracias.
  #4 (permalink)  
Antiguo 06/12/2011, 19:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mostrar registros 0 con count(*) en mysql

Buen, partamos de la base que en esa consulta no estás pidiendo en ninguna parte que te devuelva un registro cuyo valor en el campo "reg" sea cero...
Lo que estás pidiendo es que cuente cuántos registros hay en la tabla, agrupados por "codigo", y eso lo está haciendo bien.

Tu consulta, una vez limpiada de lo innecesario:
Código MySQL:
Ver original
  1.     nombre_campana,
  2.     COUNT(*) registros
  3.     datos, operaciones
  4.     codigo=RANGOINI
  5.     AND
  6.     FECHA BETWEEN '$fini' AND '$ffin'
  7.     AND
  8.     TIPO='$tipo'
  9. GROUP BY codigo;
Si lo que quieres es que te muestre qué registros tienen esa columna en cero, deberías indicarlo específicamente:
Código MySQL:
Ver original
  1.     nombre_campana,
  2.     COUNT(*) registros
  3.     datos D INNER JOIN operaciones O ON D.RANGOINI = O.codigo
  4.     O.reg = 0
  5.     AND
  6.     O.FECHA BETWEEN '$fini' AND '$ffin'
  7.     AND
  8.     D.TIPO='$tipo'
  9. GROUP BY D.codigo;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 06/12/2011, 19:21
 
Fecha de Ingreso: septiembre-2011
Mensajes: 32
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Mostrar registros 0 con count(*) en mysql

muchas gracias por su pronta respuesta, voy a probarlo y te cuento...

Etiquetas: registros, saludos, 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 17:07.