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

[SOLUCIONADO] Problema inventario

Estas en el tema de Problema inventario en el foro de SQL Server en Foros del Web. Buen dia , vengo molestandolos otra vez con una duda, estoy diseñando un inventario, y tengo mi tabla de producto con su numero de pieza, ...
  #1 (permalink)  
Antiguo 12/10/2013, 08:51
 
Fecha de Ingreso: septiembre-2013
Ubicación: en mi casa
Mensajes: 9
Antigüedad: 10 años, 7 meses
Puntos: 0
Problema inventario

Buen dia , vengo molestandolos otra vez con una duda,

estoy diseñando un inventario, y tengo mi tabla de producto

con su numero de pieza, precio , precio publico y stock...

pero no se que consulta usar para que en lugar de insertar una nueva pieza, se sume con la k ya esta... no se si me explico, si me pudieran ayudar saludos , gracias.
  #2 (permalink)  
Antiguo 12/10/2013, 13:04
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Problema inventario

Supongo que el problema es calcular el inventario actualizado despues de cada entrada o salida.
Que version de SQL Server utilizas? (la solucion con 2012 es mas facil y mucho mas eficiente)
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 14/10/2013, 11:10
 
Fecha de Ingreso: septiembre-2013
Ubicación: en mi casa
Mensajes: 9
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema inventario

Que tal, uso sql server 2012 , y si el problema es eso de actualizar el inventario... no me doy una idea muy clara de como hacer las sumas en sql y mostrarlas...,
  #4 (permalink)  
Antiguo 14/10/2013, 11:37
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Problema inventario

Adjunto un ejemplo simple apto a SQL Server 2012, espero que te sirva de ayuda:
Código SQL:
Ver original
  1. CREATE TABLE #Inventario(Fecha DateTime,
  2.                         Producto INT,
  3.                         Tipo CHAR(7),
  4.                         Cantidad INT);
  5.  
  6. INSERT
  7. INTO    #Inventario
  8. VALUES  ('20130101',1,'Entrada',100),
  9.         ('20130102',1,'Salida',30),
  10.         ('20130103',1,'Salida',40),
  11.         ('20130101',2,'Entrada',200),
  12.         ('20130102',2,'Entrada',100),
  13.         ('20130101',3,'Entrada',50);
  14.  
  15. SELECT  *,
  16.         SUM(CASE WHEN Tipo='Entrada' THEN 1 ELSE -1 END*Cantidad)
  17.                     OVER(Partition BY Producto ORDER BY Fecha
  18.                     ROWS BETWEEN Unbounded Preceding AND CURRENT ROW) RunningAggregate
  19. FROM    #Inventario
  20. ORDER BY Producto,
  21.         Fecha;
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #5 (permalink)  
Antiguo 14/10/2013, 11:51
 
Fecha de Ingreso: septiembre-2013
Ubicación: en mi casa
Mensajes: 9
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema inventario

gracias, voy a probarlo ahorita mismo, de nuevo y en serio muchisimas gracias.
  #6 (permalink)  
Antiguo 14/10/2013, 14:13
 
Fecha de Ingreso: septiembre-2013
Ubicación: en mi casa
Mensajes: 9
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema inventario

ok si me sirvio ese codigo pero ahora es me muestran dos veces el mismo producto , en lugar de solo mostrarse el ultimo sumado...
  #7 (permalink)  
Antiguo 14/10/2013, 14:18
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema inventario

puedes poner un pequeño ejemplo de tus datos, y que es lo que esperas obtener, para no andar adivinando :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 14/10/2013, 14:33
 
Fecha de Ingreso: septiembre-2013
Ubicación: en mi casa
Mensajes: 9
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema inventario

jaja gracias libras y si , mira, ahorita tengo esto que me paso geri reshef
SELECT Numero_de_parte ,cantidad,
Sum(Case When Tipo='Entrada' Then 1 Else -1 End*Cantidad)
Over(Partition BY numero_de_parte ORDER BY Fecha
Rows BETWEEN Unbounded Preceding AND Current Row) Cantidad
FROM productos

yo inserto hoy un AR-310 nt
y mañana pongo otros 2 ar-310 nt....

quiero que en mi select solo se muestre AR-310 nt 3
Ahorita se me muestroa AR-310 nt,1 , 3
AR-310 nt,2,3
  #9 (permalink)  
Antiguo 14/10/2013, 14:38
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema inventario

ejemplo de tus datos....digamos

tabla1
dato1
dato2
.
.
datoN

tabla2
dato1
dato2
.
.
datoN

Quiero esto:

resultado
dato1,sum(dato2)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #10 (permalink)  
Antiguo 14/10/2013, 14:42
 
Fecha de Ingreso: septiembre-2013
Ubicación: en mi casa
Mensajes: 9
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema inventario

tabla productos

AR-310NT
AR-455

desde un formulario yo inserto estos productos, con su cantidad, quiero que se inserte el nuevo registro pero que solo me muestre la suma de los productos que son iguales.... y no cada registro de entrada de ellos, creo que soy algo torpe para explicarme
  #11 (permalink)  
Antiguo 14/10/2013, 14:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema inventario

tomando el ejemplo de GeriReshef:

Código SQL:
Ver original
  1. CREATE TABLE #Inventario(Fecha DateTime,
  2.                         Producto INT,
  3.                         Tipo CHAR(7),
  4.                         Cantidad INT);
  5.  
  6. INSERT
  7. INTO    #Inventario
  8. VALUES  ('20130101',1,'Entrada',100),
  9.         ('20130102',1,'Salida',30),
  10.         ('20130103',1,'Salida',40),
  11.         ('20130101',2,'Entrada',200),
  12.         ('20130102',2,'Entrada',100),
  13.         ('20130101',3,'Entrada',50);
  14.  
  15.  
  16. SELECT SUM(total) total, producto FROM(
  17. SELECT  CASE WHEN tipo='Entrada' THEN SUM(cantidad) END AS total,producto
  18. FROM    #Inventario
  19. GROUP BY tipo,producto) AS t1
  20. GROUP BY producto

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: insert, inventario, tabla
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 05:12.