
07/03/2007, 10:55
|
| | Fecha de Ingreso: marzo-2007
Mensajes: 3
Antigüedad: 18 años Puntos: 0 | |
Re: Evitas Curosres SQL server gracias por tu ayuda mira no es tan complicado como parec ya que no tengo que meterme con las fechas ya que cada que se paga s ecaptura manualmente el numero de semana y al terminar el año no se borra nada llegando a la conclusion de que siempre estaran las 4 semanas en caso de que solo tenga menos de un mes se calcula un promedio inicial al darlo de alta y de ahy se agarra el promedio esto q plantie solo aplica a las personas que tengan mas de un mes ya he modificado la consulata aver si se puede hacer algo similar con esto
'SELECT TOP 4 AVG(totalPagado) AS Totales FROM TBLNHistNomina WHERE IdEmpleado = @IdEmp GROUP BY IdEmpleado ORDER BY IdEmpleado DESC'
mira esto hace mi SP y me funciona bien pero lo quiero evitar
CREATE PROCEDURE SPPromedio4sem
--sp que selecccione los 4 ultimos registro de los empleados y los muestre
@parm1 as varchar(2)--idCompania
AS
BEGIN
--cursor
DECLARE @Suma AS FLOAT
DECLARE @IdEmp AS VARCHAR(10)
DECLARE @Prom AS FLOAT
SET @IdEmp = NULL
SET @Prom = NULL
DECLARE C1 CURSOR scroll FOR
SELECT IdEmpleado FROM TBLEmpleados WHERE IdCompania = @Parm1
OPEN C1
FETCH FIRST FROM C1 INTO @IdEmp
WHILE @@FETCH_STATUS = 0
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
BEGIN
DECLARE @Total AS FLOAT
DECLARE C2 CURSOR SCROLL FOR --Selecciona los ultimos cuatro registros para el promedio de el mes
SELECT TOP 4 AVG(totalPagado) AS Totales FROM TBLNHistNomina WHERE IdEmpleado = @IdEmp GROUP BY IdEmpleado ORDER BY IdEmpleado DESC
OPEN C2
-----------------------------------------------------------------------------------------------------------------------------------------------------------
FETCH first FROM C2 INTO @Total --C2
WHILE @@FETCH_STATUS =0
BEGIN --C2
INSERT INTO TBLNInsTotal (IdEmpleado, Total) VALUES (@IdEmp,@Total)
FETCH NEXT FROM C2 INTO @Total --C2
END--C2
-----------------------------------------------------------------------------------------------------------------------------------------------------------
CLOSE C2
DEALLOCATE C2
FETCH NEXT FROM C1 INTO @IdEmp --SIGUIENTE CLAVE
END
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--fin cursor
CLOSE C1
DEALLOCATE C1
END
GO |