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

Consulta Count con Valores Null?

Estas en el tema de Consulta Count con Valores Null? en el foro de Bases de Datos General en Foros del Web. Hola Vengo pidiendo ayuda ya que no he podido realizar que una consulta me envie los datos con Valor Cero ya que no me los ...
  #1 (permalink)  
Antiguo 29/08/2010, 18:33
 
Fecha de Ingreso: junio-2010
Mensajes: 30
Antigüedad: 14 años, 5 meses
Puntos: 0
Consulta Count con Valores Null?

Hola

Vengo pidiendo ayuda ya que no he podido realizar que una consulta me envie los datos con Valor Cero ya que no me los muestra. he intentado el IfNull, ISNULL y el COALESCE, pero nada solo me cuenta los que tengan registros, lo que deseo es que los que no tengan valores me muestre Ceros. En esta consulta ya me los muestra organizados. pero no los ceros, tambien intente el LEFT JOIN pero me varia los datos del Conteo y no Son Corretos.

SELECT COUNT(tbl_lideres.Valores_Cod) AS Expr1, tbl_lideres.Valores_Cod
FROM tbl_lideres RIGHT OUTER JOIN
tbl_ganar ON tbl_lideres.Cod_Lider = tbl_ganar.Cod_lider
WHERE (tbl_lideres.Country = @Country) AND (tbl_lideres.State = @State) AND (tbl_lideres.City = @City) AND (tbl_lideres.RED = @Red)
GROUP BY tbl_lideres.Valores_Cod



Muchas Gracias
  #2 (permalink)  
Antiguo 30/08/2010, 11:22
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Consulta Count con Valores Null?

Y porque no intentas un case

Código:
case 
when valor='' or isnull(valor,0)=0 then count(1) 
end as Nulos
Saludos!
  #3 (permalink)  
Antiguo 30/08/2010, 21:29
 
Fecha de Ingreso: junio-2010
Mensajes: 30
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Consulta Count con Valores Null?

Cita:
Iniciado por Libras Ver Mensaje
Y porque no intentas un case

Código:
case 
when valor='' or isnull(valor,0)=0 then count(1) 
end as Nulos
Saludos!
Hola puede Realizar la Consulta Con el Case pero a la Hora Agregar un parametro como por ejemplo Busqueda entre Fecha no me muestra algunos porque no tiene registros en esas fechas, como podria dejar el Parametro.

SELECT CASE Valores_Cod WHEN 0101 THEN COUNT(*) WHEN 0102 THEN COUNT(*) WHEN 0103 THEN COUNT(*) WHEN 0104 THEN COUNT(*)
WHEN 0105 THEN COUNT(*) WHEN NULL THEN '0' ELSE 0 END AS IDX, Valores_Cod
FROM dbo.tbl_ganar
WHERE (Fecha_Ganado BETWEEN @Fecha_Inicial AND @Fecha_Final)
GROUP BY Valores_Cod
  #4 (permalink)  
Antiguo 31/08/2010, 08:02
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Consulta Count con Valores Null?

dinos cómo son las tablas, los nombres de sus campos y las relaciones, y luego especifica qué quieres sacar exactamente.
  #5 (permalink)  
Antiguo 31/08/2010, 10:15
 
Fecha de Ingreso: junio-2010
Mensajes: 30
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Consulta Count con Valores Null?

ok hay te envio el link donde se pueden descargar el Scripst de mis 2 tablas,

www.mcidocehuila.com/tablas.rar

pasa que quiere relacionar la tabla ganar con tbl_Pruebas, en las 2 tablas se encuentran el campo valores_Cod. lo que quiere es que me muestre los datos organizados en la tabla valores_Cod en unos codigos de la siguiente forma:
Cod Conteo
0101 1
0102 5
0103 6
0104 10
0105 0
0106 0
0107 10
0108 25
0109 10
0110 3
0111 18
0112 2

y en la tabla ganar tambien estan en un campo llamado valores_cod lo que pasa es yo cuento los registros exitentes en la tabla_ganar pero quiero que los agrupe y realice un conteo, los que no tengan registros me muestre ceros con esta sentia me los muestra:

SELECT CASE Valores_Cod WHEN 0101 THEN COUNT(*) WHEN 0102 THEN COUNT(*) WHEN 0103 THEN COUNT(*) WHEN 0104 THEN COUNT(*)
WHEN 0105 THEN COUNT(*) WHEN NULL THEN '0' ELSE 0 END AS IDX, Valores_Cod
FROM dbo.tbl_ganar
GROUP BY Valores_Cod

pero cuando agrego un parametro como between que es entre fechas o cualquier otro no me muestra los que contienen ceros solo los que tienen registros.

con parametros:

SELECT CASE Valores_Cod WHEN 0101 THEN COUNT(*) WHEN 0102 THEN COUNT(*) WHEN 0103 THEN COUNT(*) WHEN 0104 THEN COUNT(*)
WHEN 0105 THEN COUNT(*) WHEN NULL THEN '0' ELSE 0 END AS IDX, Valores_Cod
FROM dbo.tbl_ganar
WHERE (Fecha_Ganado BETWEEN @Fecha_Inicial AND @Fecha_Final)
GROUP BY Valores_Cod

Resultado con parametros sin los ceros de los otros codigos
Cod Conteo
0101 1
0102 5
0103 6
0104 10
0107 10
0108 25
0109 10
0110 3
0111 18
0112 2

Muchas Gracias por tu ayuda
  #6 (permalink)  
Antiguo 31/08/2010, 14:27
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Consulta Count con Valores Null?

bimboclaim,
no usas MySqL, la base que yo suelo utilizar, y no puedo hacer pruebas con tus datos. Pero no sé si has probado algo como esto:
SELECT p.Valores_Cod COD, COALESCE(COUNT(*),0) CONTEO FROM tbl_Pruebas p LEFT JOIN tbl_ganar g ON p.Valores_Cod = t.Valores_Cod GROUP BY p.Valores_Cod ORDER BY p.Valores_Cod
  #7 (permalink)  
Antiguo 02/09/2010, 12:08
 
Fecha de Ingreso: septiembre-2010
Mensajes: 60
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: Consulta Count con Valores Null?

Código SQL:
Ver original
  1. (
  2.  
  3. SELECT COUNT(tbl_lideres.Valores_Cod) AS Expr1, tbl_lideres.Valores_Cod
  4. FROM tbl_lideres RIGHT OUTER JOIN
  5. tbl_ganar ON tbl_lideres.Cod_Lider = tbl_ganar.Cod_lider
  6. WHERE (tbl_lideres.Country = @Country) AND (tbl_lideres.State = @State) AND (tbl_lideres.City = @City) AND (tbl_lideres.RED = @Red)
  7. GROUP BY tbl_lideres.Valores_Cod
  8.  
  9. )UNION(
  10.  
  11. SELECT 0 AS Expr1,tbl_lideres.Valores_Cod
  12. FROM tbl_lideres b
  13. WHERE (b.Country = @Country) AND (b.State = @State) AND (b.City = @City) AND (b.RED = @Red) AND
  14. b.Cod_lider NOT IN
  15.   (
  16.   SELECT g2.Cod_lider
  17.   FROM tbl_ganar g2
  18.   )
  19.  
  20. )

Tal vez sea un poco más lento que otras opciones, pero es efectivo.

Última edición por abacusar; 02/09/2010 a las 12:18

Etiquetas: count, null
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 02:12.