Respuesta: Calculo de Columnas Libras una consulta adicional prometo que será la ultima!!, partiendo de la data final que se obtiene en la tabla debo calcular dos columnas adicionales..
"Necesidad" la primera ves es igual a: si la "Demanda" actual es menor a "Lote" muestra Lote si no muestra Demanda, en adelante será igual a: si el "Saldo" anterior
es mayor a la Demanda actual es igual a 0 caso contrario, si la Demanda actual es menor a "Lote" muestra Lote si no muestra Demanda actual.
"Saldo_ns" la primera ves es igual a: "Necesidad" actual menos(-) "Demanda" actual, en adelante será igual a: "Necesidad" actual mas(+) "Saldo" anterior menos(-) "Demanda" actual
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 originalCREATE 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), Necesidad NUMERIC(16,8), Saldo_ns NUMERIC(16,8) ) INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201406,150,200,-70,0,0,0) INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201407,100,70,30,30,0,0) INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201408,120,0,120,120,0,0) INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201409,80,0,80,80,0,0) INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201410,25,0,25,25,0,0) INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201411,150,0,150,150,0,0) INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201412,300,0,300,300,0,0) INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1002',100,80,500,201501,50,100,-130,0,0,0) INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1002',100,80,500,201501,30,130,-100,0,0,0) INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1002',100,80,500,201502,65,100,-350,0,0,0) --INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201406,150,200,-70,0,1000,1000) --INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201407,100,70,30,30,0,970) --INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201408,120,0,120,120,0,850) --INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201409,80,0,80,80,0,770) --INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201410,25,0,25,25,0,745) --INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201411,150,0,150,150,0,595) --INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1001',200,20,1000,201412,300,0,300,300,0,295) --INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1002',100,80,500,201501,50,100,-130,0,500,500) --INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1002',100,80,500,201501,30,130,-100,0,0,430) --INSERT INTO #mitabla(Producto, Disponible, Proceso, Lote, Periodo, Requerido, DisponibleNuevo, Saldo, Demanda, Necesidad, Saldo_ns) VALUES('1002',100,80,500,201502,65,100,-350,0,0,310)
Última edición por gnzsoloyo; 15/08/2014 a las 09:05 |