Gracias Osirapi,
pero como tu decias no es lo q estoy buscando.
Pensé en crear dos funciones:
Una para obtener un count() con prioridad=2
create or replace FUNCTION fn_Obtener_prioridad_canal(n_nivel number,n_canal number, n_mes number,n_ano number)
RETURN NUMBER
IS
result number;
begin
select count(*)
into result
from incidencias
where grupo(+) = grupo
and canal(+) = canal
and prioridad(+)=prioridad
and prioridad=2
and mes = n_mes
and ano= n_ano
and grupo=n_nivel
and canal=n_canal
group by grupo,canal;
return( result);
EXCEPTION
WHEN NO_DATA_FOUND
THEN return 0;
END fn_Obtener_prior_canal;
y otro para obtener el count() total
create or replace FUNCTION fn_Obtener_total_canal(n_nivel number,n_canal number, n_mes number, n_ano number)
RETURN NUMBER
IS
result number;
begin
select count(*)
into result
from incidencias
where grupo(+) = grupo
and canal(+) = canal
and prioridad(+)=prioridad
and mes = n_mes
and ano= n_ano
and grupo=n_nivel
and canal=n_canle
group by grupo,canal;
return( result);
EXCEPTION
WHEN NO_DATA_FOUND
THEN return 0;
END fn_Obtener_total_canal;
luego llamaría a las dos funciones desde otro select:
select distinct grupo, canal,
nvl(fn_Obtener_prior_canal(grupo,canal, mes,ano),0) as "Nº Críticos",
nvl(fn_Obtener_total_canal(grupo,canal,mes,ano),0) as "Nº Total"
from incidencias
where grupo(+) = grupo
and canal(+) = canal
and mes =2
and ano=2008
and grupo=2
pero no cuenta las filas con campos nulos.
No se en que estoy fallando.
A ver si me podeis echar una mano.
Gracias.: