![]() |
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. |
Re: Count que devuelva 0 Una idea: SELECT exg.idEquipo, IF(COUNT(*)>0, COUNT(*), 0) AS ganados ... Saludos! |
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 |
Re: Count que devuelva 0 Pruena con un left join, debería funcionar. Salu2 |
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. |
| La zona horaria es GMT -6. Ahora son las 07:40. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.