Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 06-ago-2007, 03:01   #1 (permalink)
Dio_83 ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2007
Mensajes: 20
Count que devuelva 0

Hola buenos días,

estoy perdiendo la cabeza con una cosulta:

-------------------------------------------------
SELECT exg.idEquipo,
count(*) AS ganados
FROM encuentros AS e, equiposxgrupo AS exg
WHERE e.puntos1 > e.puntos2
AND exg.idEquipo = e.idEquipo
GROUP BY exg.idEquipo

TABLA equiposxgrupo
-------------------------------------------------
idEquipo
------ 1
------ 2
------ 3
-------------------------------------------------

TABLA encuentros
-------------------------------------------------
idEquipo y los encuentros con puntos1 y puntos2
------ 1
------ 2
------ 3
-------------------------------------------------


---------------------------------------------------------

por que evidentente, si puntos1 > puntos2 se cumple no hay problema, te cuenta las tuplas y te sale el siguietne resultado:

-------------------------------------------------
equipo count(*) (cuenta los patidos ganados)
1 ------ 1 partido ganado
3 ------ 2 partidos ganados
-------------------------------------------------



El problema es que no sale el equipo 2, porque no ha ganado ningún partido. ¿alguien sabe como puedo hacer para que salga el equipo 2 con patidos ganados = 0?

-------------------------------------------------
equipo count(*) (cuenta los patidos ganados)
1 ------ 1 partido ganado
2 ----- 0 partidos ganados
3 ------ 2 partidos ganados
-------------------------------------------------

Cualquier ayuda se lo agradecería infinitamente.

Gracias por su atención.
Dio_83 está desconectado   Responder Citando
Antiguo 06-ago-2007, 03:08   #2 (permalink)
Mahalo tiene algunos puntos positivos de karma
 
Avatar de Mahalo
 
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.013
Re: Count que devuelva 0

Una idea:

SELECT exg.idEquipo, IF(COUNT(*)>0, COUNT(*), 0) AS ganados
...

Saludos!
Mahalo está desconectado   Responder Citando
Antiguo 06-ago-2007, 03:39   #3 (permalink)
Dio_83 ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2007
Mensajes: 20
Re: Count que devuelva 0

SELECT fkequipo,
IF(COUNT(*)>0, COUNT(*), 0) as ganadoscasa
FROM encuentros, equiposxgrupo
WHERE encuentros.resultado is not null
AND encuentros.fkequipo2 is not null
AND encuentros.puntos1 > encuentros.puntos2
AND equiposxgrupo.fkequipo = encuentros.fkequipo1
GROUP BY fkequipo


es incrible, pero sigue funcionando igual.
Si pongo COUNT(*) + 1 me funciona y suma un partido ganado a cada equipo.
Pero al equipo 2 no le asigna 0 partidos ganados.

fkequipo ganadoscasa
1------------- 2
3------------- 2



Mil gracias Mahalo por tu idea.

Seguiré probando a ver

Última edición por Dio_83; 06-ago-2007 a las 03:48.
Dio_83 está desconectado   Responder Citando
Antiguo 06-ago-2007, 05:51   #4 (permalink)
seyko ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.136
Re: Count que devuelva 0

Pruena con un left join, debería funcionar.
Salu2
seyko está desconectado   Responder Citando
Antiguo 06-ago-2007, 12:32   #5 (permalink)
Dio_83 ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2007
Mensajes: 20
Re: Count que devuelva 0

Con LEFT JOIN :
SELECT exg.fkequipo, COUNT( *) AS ganadoscasa
FROM co_encuentros AS e
LEFT JOIN co_equiposxgrupo AS exg
ON e.puntos1 > e.puntos2
AND exg.fkequipo = e.fkequipo1
GROUP BY exg.fkequipo

me sale:

fkequipo ganadoscasa
NULL--4
1 ------1
3 ------1


Me sale NULL en lugar del fkequipo 2.

Gracias Seyko por tu idea.
Dio_83 está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:41.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93