Hola Grupo
Tengo una tabla y siguiera lo siguiente
ConsumoID Fecha ClienteID Consumo Total
1 01/01/04 1 0 0
2 01/02/04 1 75 75
3 01/03/04 1 100 25
4 01/01/04 2 0 0
5 01/02/04 2 60 60
5 01/03/04 2 80 20
Quiero tener el campo total calculado, es decir que me reste el consumo del
mes anterior del mes actual.
Aqui suponemos que iniciara en el mes 01/010/01 en '0' por lo tanto el total
es igual a cero, luego en el mes 01/02/04 el total es igual a 75 porque
75 -0 = 0, luego en la fecha 01/03/04 el total es igual a 25 ya que 100-75
%
Donde el clienteID tiene que ser igual al clienteID
Lo que este cliente consume en un mes se le factura a ese mes y lo que
consume el proximo mes es igual a ese mes menos el mes anterior y este es el
monto al cual se le facturara el mes.
Javier Loria me estuvo ayudando con esto y me envio lo siguiente:
CREATE VIEW ClienteConsumoMensual
AS
SELECT Tabla.ConsumoId
, Tabla.Fecha
, Tabla.ClienteId
, Tabla.Consumo
, Tabla.Consumo-COALESCE(Anterior.Consumo,0) AS Total
FROM Tabla
LEFT JOIN Tabla AS Anterior
ON Tabla.FechaÚTEADD(mm,1,Anterior.Fecha)
AND Tabla.ClienteID=Anterior.ClienteID
Esto funciona a la perfección, ahora estuve
asiendo prueba y veo que tienen que coincidir el mes actual con el mes
pasado en cuanto a días y mes, pero tengo un problema que si en el mes
presente se hace un insert con un día de diferencia del mes anterior no
realiza la resta, es decir resta el valor actual por cero donde debería ser
no por cero sino por el valor anterior.
Siempre el campo Consumo tendra un valor mayor Mes tras mes.
Estuve probando asiendo un select Max(consumo) por cliente y implementando
un trigger instead of insert
pero esto no me sale.
Leer las respuestas