Ver Mensaje Individual
  #6 (permalink)  
Antiguo 24/03/2008, 02:47
pukas
 
Fecha de Ingreso: marzo-2008
Mensajes: 4
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: ¿Se puede en Oracle en un select poner dos count con distinto where?

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.: