DECLARE @idMenor INT, @idMayor INT
SELECT @idMenor = min([id]), @idMayor=max([id]) FROM @inConsumo
BEGIN TRAN
WHILE @idMenor<=@idMayor
BEGIN
INSERT INTO [dbo].[MovConsumo](fecha,montoM3,lecturaConsumo,nuevoM3Consumo,id_Propiedad,idTipoMov)
SELECT
C.Fecha,
CASE WHEN (C.idTipo = 1) THEN C.LecturaM3-P.M3acumuladosAgua
ELSE C.LecturaM3
END,
CASE WHEN (C.idTipo = 1) THEN C.LecturaM3
ELSE NULL
END,
CASE WHEN (C.idTipo = 1) THEN C.LecturaM3
WHEN (C.idTipo = 2) THEN P.M3acumuladosAgua-C.LecturaM3
ELSE P.M3acumuladosAgua+C.LecturaM3
END,
P.id,
C.idTipo
FROM [dbo].[Propiedad] P
INNER JOIN @inConsumo C ON C.numFinca = P.[numFinca]
WHERE C.id = @idMenor
UPDATE [Propiedad]
SET M3acumuladosAgua = CASE WHEN (C.idTipo = 1) THEN C.LecturaM3
WHEN (C.idTipo = 2) THEN M3acumuladosAgua-C.LecturaM3
ELSE M3acumuladosAgua+C.LecturaM3
END
FROM [Propiedad] P
INNER JOIN @inConsumo C ON C.numFinca = P.[numFinca]
WHERE C.id = @idMenor
SET @idMenor = @idMenor+1
END
Se trabajo por 4h
No hay comentarios:
Publicar un comentario