MySQL - problrma count

 
Vista:

problrma count

Publicado por rodrigo clavijo (2 intervenciones) el 13/09/2010 22:23:48
hola estoy haceindo un ejercicion con mysql...
tengo dos tablas una se llama MASCOTA y la OTRA DUEÑO

estoy haciendo una consulta donde el resultyado debe ser por mascota cuantos dueños tienen ese tipo de mascota...

entocnes el resultad sera:
GATOS :3
peroos: 2 .. y asi sucesivamente

tengo hasta ahora esto:
SELECT count(Mascota.nombre) as count,Mascota.nombre as mascota FROM Mascota,dueño where Mascota.idMascota=dueño.idMascota group by Mascota.nombre

count | mascota
3 | Gato
1 | Perro

ese es el resultado pero tego mas mascotas.... como conejos pajaros.... y lo q quiero hacer es q paraezcan esos tamb.. asi:

0 Conejos
0 Pajaros

pero esos no me lso muestra como puedo hacer para q esos me los cuente y ponga cero en esos casos?

muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problrma count

Publicado por martin (150 intervenciones) el 14/09/2010 01:30:46
Probaste con unos LEFT JOIN Y RIGHT JOIN?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problrma count

Publicado por rodrigo clavijo (2 intervenciones) el 14/09/2010 15:28:00
hola si hice esto:

SELECT dueño.nombre as dueño, Mascota.nombre as mascota
FROM Mascota LEFT JOIN dueño
ON Mascota.idMascota=dueño.idMascota

esta el resultado es:
Daniel --> GAto
Pedro --> Gato
Andy --> Perro
NULL --> conejo

cuando hago el count... el resultado es:
gato =2
perrro=1
conejo=1

pero conejo dberia ser cero.... estoy intentando varias cosas pero nada funciona...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problrma count

Publicado por martin (150 intervenciones) el 17/09/2010 02:22:07
poner un cero quisas tiene mas que ver con el tool de informes que uses(Crustal reports,Quick Report Etc), lo que se puede hacer y es lo unico que se me ocurre ahora es algo asi

SELECT mascota,SUM(Dueño)as Total FROM
(SELECT IFNULL(dueño.nombre ,0,1)AS Dueño, Mascota.nombre as mascota
FROM Mascota LEFT JOIN dueño
ON Mascota.idMascota=dueño.idMascota
GROUP BY mascota) AS T;
GROUP BY mascota;

es como transformar los dueños en un numero para luego sumarlo y nos va a dar lo mismo y deberia devolverte cero con los null por que los cambias por cero, en fin , es lo unico que se me ocurre ahora je seguro hay una forma mas simple pero bue,

saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar