"DisponibleNuevo" la primera ves es igual al Disponible del producto, en adelante sera igual al "saldo" si es negativo se muestra su valor absoluto sino será 0
"saldo" siempre es igual a (Requerido - DisponibleNuevo - Proceso),
"demanda" siempre es igual a "saldo" (si es negativo se iguala a 0)
Copio el código de la tabla primero con registros de datos y las columnas a calcular vacías,
y segundo los registros de datos comentados con el resultado final como debería quedar.
Gracias de antemano por su ayuda.
Código SQL:
Ver original
CREATE TABLE MiTabla( Producto VARCHAR(04), Disponible NUMERIC(16,8), Proceso NUMERIC(16,8), Lote NUMERIC(16,8), Periodo INT, Requerido NUMERIC(16,8), DisponibleNuevo NUMERIC(16,8), Saldo NUMERIC(16,8), Demanda NUMERIC(16,8) ) GO INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201406,150,0,0,0) INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201407,100,0,0,0) INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201408,120,0,0,0) INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201409,80,0,0,0) INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201410,25,0,0,0) INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201411,150,0,0,0) INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201412,300,0,0,0) INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1002',100,80,500,201501,50,0,0,0) INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1002',100,80,500,201501,30,0,0,0) INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1002',100,80,500,201502,65,0,0,0) --INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201406,150,200,-70,0) --INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201407,100,70,30,30) --INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201408,120,0,120,120) --INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201409,80,0,80,80) --INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201410,25,0,25,25) --INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201411,150,0,150,150) --INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1001',200,20,1000,201412,300,0,300,300) --INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1002',100,80,500,201406,50,100,-130,0) --INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1002',100,80,500,201407,30,130,-100,0) --INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1002',100,80,500,201408,65,100,-35,0) --INSERT INTO MiTabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda) VALUES('1002',100,80,500,201409,85,35,50,50)