Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/08/2014, 18:17
ceqn_20
 
Fecha de Ingreso: agosto-2014
Mensajes: 17
Antigüedad: 9 años, 8 meses
Puntos: 0
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 original
  1. CREATE TABLE #mitabla(
  2. Producto VARCHAR(04),
  3. Disponible NUMERIC(16,8),
  4. Proceso NUMERIC(16,8),
  5. Lote NUMERIC(16,8),
  6. Periodo INT,
  7. Requerido NUMERIC(16,8),
  8. DisponibleNuevo NUMERIC(16,8),
  9. Saldo NUMERIC(16,8),
  10. Demanda NUMERIC(16,8),
  11.  
  12. Necesidad NUMERIC(16,8),
  13. Saldo_ns NUMERIC(16,8)
  14.  
  15. )
  16.  
  17. 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)
  18. 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)
  19. 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)
  20. 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)
  21. 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)
  22. 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)
  23. 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)
  24. 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)
  25. 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)
  26. 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)
  27.  
  28. --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)
  29. --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)
  30. --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)
  31. --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)
  32. --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)
  33. --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)
  34. --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)
  35. --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)
  36. --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)
  37. --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