Division en SQL

From: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
To: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Division en SQL
Date: 2012-12-01 15:14:44
Message-ID: BAY155-W10C14C0F9765C8BB258AC9E3420@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Estoy calculando valores de razonez usando SQL y tengo el problema de las divisiones por zero y tener que volver a calcular el denominador. Me explico, ejemploSELECT ID,f_idagente ( SELECT count(s.f_id) AS xsell2 FROM dcg.t_sys_disposicion d, dcg.t_sys_calls s WHERE s.f_disposicion = d.f_id AND s.f_horastart::date >= $1 and s.f_horastart::date<=$2 and d.f_id IN(32,33,35,36,40,42,43,44) and s.f_agente=f_idagente ) / ( SELECT count(s.f_id) AS coreoffert FROM dcg.t_sys_disposicion d, dcg.t_sys_calls s WHERE s.f_disposicion = d.f_id AND s.f_horastart::date >= $1 and s.f_horastart::date<=$2 and d.f_id IN(30,31,32,33,38,41,42,43) and s.f_agente=f_idagente ) FROM TABLA;
En este select si quisiera evaluar antes de calcular si el denominador =0 tendria que volver hacerlo y usar una clausula CASE ...WHEN para comprobar. Mi pregunta es no existe otra forma mas simple de poder hacer la validacion sin tener que volver a repetir todo el select y tener que poner el CASE ...WHEN porque me complica demasiado el codigo ?
La otra forma que pense es de calcular en funciones cada razon que estoy calculando y en la funcion hacer todo solo retornar 0 o el valor calculado pero no me gusta mucho la idea porque deberia hacer 10 funciones que son las razones que calculo, imaginense, por otro lado, 10 razones como estas ademas de la validacion de si el denominador es 0 seria kilometrico el SELECT en cuestion, existe algun truco para esto y yo no me lo se ?
Si uso funciones el plan de ejecucion no se ve afectado ?
Gracias

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message ferd agu 2012-12-03 14:40:48 Tipo de datos
Previous Message Fernando Hevia 2012-11-30 22:47:09 Re: Varibbles %type en Procedimeintos Almacenados para Postgres