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

Mostrar cero al devolver una consulta

Estas en el tema de Mostrar cero al devolver una consulta en el foro de Oracle en Foros del Web. Buenas, tengo un problema que no logro resolver. Resulta que tengo ke mostrar en una sola SELECT el numero de mujeres que tiene cada persona(pero ...
  #1 (permalink)  
Antiguo 08/11/2006, 18:28
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 7 meses
Puntos: 0
Mostrar cero al devolver una consulta

Buenas, tengo un problema que no logro resolver. Resulta que tengo ke mostrar en una sola SELECT el numero de mujeres que tiene cada persona(pero si una persona no tiene mujeres pues que aparezca cero). Yo logro resolver ke me muestre para cada persona hay tantas mujeres, pero no he logrado resolver que me muestre cero si la persona no tiene mujeres. GRACIAS.

Aquí esta lo que yo he hecho:
Código:
select p persona,count(*)
from persona p,persona_mujeres pm,mujeres m
where p.dni= pm.dni
and pm.mujer = m.mujer
group by m.mujer

La tablas serian estas:

PERSONA
dni varchar2(9) not null
nombre varchar2(40),
apellido1 varchar2(30),
apellido2 varchar2(30)


PERSONA_MUJERES
dni varchar2(9) not null,
mujer number(2) not null


MUJERES
mujer number(2) not null,
descripcion varchar2(40)
  #2 (permalink)  
Antiguo 09/11/2006, 18:19
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
"select p persona,count(*)
from persona p,persona_mujeres pm,mujeres m
where p.dni= pm.dni
and pm.mujer = m.mujer
group by m.mujer"

error ya que m.mujer no es parte del select

"pero si una persona no tiene mujeres pues que aparezca cero"

no se si te sirve el NVL, o si no existe la mujer no te trae el registro entonces hablamos de usar (+) en el where
__________________
Blogzote.com :-) Mi blog
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 09:10.