Ver Mensaje Individual
  #1  
Antiguo 29-08-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Reputación: 23
ContraVeneno Va por buen camino
Post Promedio de campo calculado con una sub-consulta

Saludos a todos, trataré de dar una explicación para luego hacer la pregunta.
tengo la siguiente tabla "Hist":
Código:
Tipo Fecha			SiguienteVisita
--------------------------------------
A	 2005-01-21	 2005-02-21
A	 2005-02-25	 2005-03-25
B	 2005-03-26	 2005-04-26
A	 2005-04-30	 2005-05-30
Para conocer el retraso que tiene en cada visita, hago lo siguiente (comparar la Siguiente Visita de la anterior con la Fecha cuando vino):
Código SQL [-]
select A.Tipo, datediff(dd,(select top 1 H.SiguienteVisita
from Hist H
where H.fecha_<_A.Fecha) , A.Fecha) as Retraso
from Hist A
Que me da el siguiente resultado:
Código:
Tipo Retraso
---------------
A	 NULL 
A	 4
B	 1
A	 4
Lo que es necesario obtener de estos datos, es el promedio de retraso de cada tipo, es decir:
Código:
Tipo PromedioRetraso
---------------
A	 2.66 
B	 1
intenté utilizar AVG() agrupando por Tipo de esta forma: AVG(Retraso) pero me marca que "Retraso no es un campo válido".
Luego intenté AVG(datediff(dd,...,...)) pero me dice que no puedo utilizar la función AVG cuando se encuentra una sub-query.

¿Alguna sugerencia sobre como obtener el promedio de un campo que estoy calculando con una sub-consulta?


--------- Editado -------
Lo solucioné utilizando una tabla temporal. De cualquier manera:Cualquier sugerencia, idea o recomendación será bienvenida.
__________________


Última edición por ContraVeneno fecha: 30-08-2005 a las 18:36:12. Razón: Solucionado
Responder Con Cita