Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/03/2007, 10:07
daniel00
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 18 años, 4 meses
Puntos: 8
Re: Evitas Curosres SQL server

Que tal k8azo.

Primero, una observación.

La consulta:
Código:
"select top 4 total from totalsem where idempleado =455 oreder by tstamp desc"
Te devuelve los últimos cuatro pagos, no los "pagos" de las últimas cuatro semanas, a mi entender claro.

Lo anterior pensado en que a un empleado quiza sólo le han pagado dos veces en las últimas cuatro semanas.

Sugerencia.

De ser cierto lo anterior podemos hacer lo siguiente:

Código:
DECLARE @FechaIni
-- Obtener fecha de hace 4 semanas.
SET @FechaIni = DateAdd(ww, -4, getdate() ) -- Aquí puede ser -4 ó -5, haz pruebas

-- Obtenemos totales( o promedios)  de las últimas cuatro semanas.
select idempleado, AVG(total) as Prom4  
INTO #tmpProm4
from totalsem 
where  tstamp >= @FechaIni
---------- Lo que esta en color seguramente tienes que hacer una conversión


-- Por último la cruzamos contra los empleados
SELECT e.*, t.Prom4 as Promedio
FROM Empleado e 
            INNER JOIN #tmpProm4 t  ON e.idempleado = t.idempleado

-- borramos la temporal
DROP TABLE #tmpProm4
Si la solución no esta total, va más o menos por ahí.

Saludos y suerte!!