Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Consulta para movimientos

Estas en el tema de Consulta para movimientos en el foro de SQL Server en Foros del Web. Saludos Estoy tratando de generar una consulta en donde calcule el movimiento de mi stock, por ejplo tengo una cantidad inicial,luego se inicia un movimiento ...
  #1 (permalink)  
Antiguo 23/02/2012, 17:49
Avatar de WILLIAMGG  
Fecha de Ingreso: febrero-2005
Mensajes: 218
Antigüedad: 19 años, 2 meses
Puntos: 0
Consulta para movimientos

Saludos
Estoy tratando de generar una consulta en donde calcule el movimiento de mi stock, por ejplo tengo una cantidad inicial,luego se inicia un movimiento bien de salida o ingreso del producto, PERO necesito calcular el stock acumulado. He logrado Sacar los datos de las columnas fecha,producto, stock_inicial,ingreso y salida, pero necesito una ayuda de como sacar el STOCK FINAL

FECHA PROD stock_ini INGR SALIDA STOCK_FINAL
-------------------------------------------------------------
01/02/2012 P0001 500 500
01/02/2012 P0001 500 1000
01/02/2012 P0001 100 900
02/02/2012 P0001 100 800
03/02/2012 P0001 100 700

Gracias por anticipado
  #2 (permalink)  
Antiguo 24/02/2012, 13:07
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta para movimientos

Con este ejemplo, podras realizar lo que pides:

Código SQL:
Ver original
  1. CREATE TABLE Tmp(
  2. Fecha_Hora smalldatetime,
  3. No_Comprobante INT,
  4. No_Linea SMALLINT,
  5. Lote INT,
  6. Pcb SMALLINT,
  7. Pedido SMALLINT,
  8. Ingreso SMALLINT,
  9. Egreso SMALLINT,
  10. Saldo SMALLINT
  11. )
  12. GO
  13.  
  14. INSERT INTO Tmp VALUES('2005-05-02 01:15:00',4,1,21,6,334,167,0,0)
  15. INSERT INTO Tmp VALUES('2005-05-03 15:07:10',5,1,29,6,167,167,0,0)
  16. INSERT INTO Tmp VALUES('2005-07-01 12:25:15',6,1,12,6,200,50,0,0)
  17. INSERT INTO Tmp VALUES('2005-07-01 21:05:52',25,1,1,6,200,0,140,0)
  18. GO
  19.  
  20. SELECT
  21.         a.fecha_hora,
  22.         a.ingreso,
  23.         a.egreso,
  24.         SUM(b.ingreso - b.egreso) AS saldo
  25. FROM
  26.         tmp AS a
  27.         INNER JOIN
  28.         tmp AS b
  29.         ON b.Fecha_Hora <= a.Fecha_Hora
  30. GROUP BY
  31.         a.fecha_hora,
  32.         a.ingreso,
  33.         a.egreso
  34. ORDER BY
  35.         1 ASC
  36. GO
  37.  
  38. DROP TABLE tmp
  39. GO
  40.  
  41. Si este calculo lo quieres hacer por producto, entonces debes agregar una
  42. condicion mas al "inner join", que es:
  43.  
  44. a.product_id = b.productid
__________________
MCTS Isaias Islas

Etiquetas: fecha
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:50.