Ver Mensaje Individual
  #1  
Antiguo 14-10-2003
Viet Viet is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina - Mar del Plata
Posts: 252
Reputación: 21
Viet Va por buen camino
Consulta - MSSQL

Buenas Coleguas:

Estoy realizando unos procesos que procesan muchos datos con algunas formulas simples, el tema es que uno de los resultados utiliza otro de los resultados y estoy dando al DBMS doble trabajo en que calcule ambas veces lo mismo. Osea, dentro del mismo bloque SELECT tengo PromedioTT y Requeridas, donde cuando tengo que calcular requeridas uso el resultado de PromedioTT, pero como no se como tomar el resulrado de la columna anteriormente calculada la calculo nuevamente .

Este es el cod :
Código:
 
Select 
ROUND( 
  (
    
    case  SUM(ai.callsanswered)
  when 0 then 0
        else  (  cast (SUM(ai.talktime) as float /*(10,6 )*/)
                / 
                cast (  SUM(ai.callsanswered) as float /*(10,6 )*/)
               )
     end
   
  ) +
  (
    case  max(ll.atendidas)
       when 0 then 0
       else (   cast (min(ll.no_listo)as float /*(10,6)*/)
                  / 
                cast (max(ll.atendidas)as float /*(10,6)*/)
        )
    end 
)
  , 0) AS avgtalktime,


/* requeridas    =  */
ROUND(
(
 cast ( SUM(ai.callsanswered)as float (10,5))
 *
 (
      case  SUM(ai.callsanswered)
  when 0 then 0
        else  (  cast (SUM(ai.talktime) as float /*(10,6 )*/)
                / 
                cast (  SUM(ai.callsanswered) as float /*(10,6 )*/)
               )
      end
    + 
      case  max(ll.atendidas)
       when 0 then 0
       else (   cast (min(ll.no_listo)as float /*(10,6)*/)
                  / 
                cast (max(ll.atendidas)as float /*(10,6)*/)
        )
      end 
  )
 )
 /
  cast( avg(g.objetivo_conversacion) as decimal (10,5)
)
,0) AS required ........//sigue la consulta
La pregunta es entonces, saben como puedo hacerlo de modo mas eficiente usando avgtalktime????
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;)
Responder Con Cita