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

Sumar columnas en sql server 2008

Estas en el tema de Sumar columnas en sql server 2008 en el foro de SQL Server en Foros del Web. Hola a todos tengo un problema en sql server y espero me puedan ayudar, el problema es el siguiente: Tengo una tabla llamada prueba con ...
  #1 (permalink)  
Antiguo 31/10/2011, 16:02
 
Fecha de Ingreso: abril-2010
Mensajes: 65
Antigüedad: 14 años, 6 meses
Puntos: 3
Sumar columnas en sql server 2008

Hola a todos tengo un problema en sql server y espero me puedan ayudar, el problema es el siguiente:
Tengo una tabla llamada prueba con los siguientes campos y registros:
Entrada Salidas Stock
150 0 0
0 50 0
80 0 0

Lo que quiero es q en el campo stock me sume en manera de kardex, es decir que al final me muestre esto:
Entrada Salidas Stock
150 0 150
0 50 100
80 0 180

ese resultado me sale de la siguiente formula: Stock = stock + (entrada - salida)
Alguien pordria ayudarme porfavor, desde ya gracias.

Última edición por Cvilla90; 31/10/2011 a las 16:07
  #2 (permalink)  
Antiguo 31/10/2011, 17:12
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Sumar columnas en sql server 2008

¿Es un ejercicio de escuela?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 01/11/2011, 09:28
Avatar de yamiblancoc  
Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Sumar columnas en sql server 2008

es muy sencillo lo puedes hacer son los select y luego que te imprima que esta sumando y el resultado
  #4 (permalink)  
Antiguo 01/11/2011, 09:49
 
Fecha de Ingreso: noviembre-2011
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Respuesta: Sumar columnas en sql server 2008

facil select entrada, salida, entrada - salida as stock from prueba
  #5 (permalink)  
Antiguo 01/11/2011, 10:08
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Sumar columnas en sql server 2008

no es tan facil con un simple select ya que lo que pide es que el stock agarre el valor del stock anterior ejem:

Entrada Salidas Stock row_number
150 0 150 1
0 50 100 2
80 0 180 3

el calculo como lo pide el compañero es stock=stock + (entrada-salida) en este caso seria 150 del renglon 1 mas (0-50) del renglon 2 lo que nos daria = 100...ahi esta lo complicado del query.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 01/11/2011, 12:37
 
Fecha de Ingreso: abril-2010
Mensajes: 65
Antigüedad: 14 años, 6 meses
Puntos: 3
Respuesta: Sumar columnas en sql server 2008

Asi es brother, tienes razón Libras veo q me has entendido lo q realmente quiero eso tiene q ir guardandomelo en una variable o algo e ir sumandolo con la siguiente fila e intentado hacerlo con un bucle pero no he podido dar con la respuesta, x favor alguien q me ayude
  #7 (permalink)  
Antiguo 01/11/2011, 14:20
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Sumar columnas en sql server 2008

Veamos

Revisa este ejercicio y dime si te es util.

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
  #8 (permalink)  
Antiguo 01/11/2011, 18:28
 
Fecha de Ingreso: abril-2010
Mensajes: 65
Antigüedad: 14 años, 6 meses
Puntos: 3
Respuesta: Sumar columnas en sql server 2008

GRACIAS iislas ya está!!! Problema resuelto, chevere tio
  #9 (permalink)  
Antiguo 01/11/2011, 18:49
 
Fecha de Ingreso: abril-2010
Mensajes: 65
Antigüedad: 14 años, 6 meses
Puntos: 3
Respuesta: Sumar columnas en sql server 2008

Aqui he utilizado tu codigo para modificarlo en un minimo pero en realidad vendria a ser casi lo mismo solo q io no utlizo el campo fecha, es el siguiente:

Create Table Prueba(Entrada Int
,Salida Int
,Stock Int)

Insert Into Prueba Values(150,0,0)
Insert Into Prueba Values(0,50,0)
Insert Into Prueba Values(80,0,0)
Insert Into Prueba Values(0,70,0)

Select
Identity (Int,1,1) As Id
,*
Into ##TblTmp1
From Prueba

Select
a.Id,
a.Entrada,
a.Salida,
Sum(b.Entrada - b.Salida) As Stock
From ##TblTmp1 a
Inner Join ##TblTmp1 b
On b.Id <= a.Id
Group By a.Id,
a.Entrada,
a.Salida
Order By 1 Asc

Drop Table ##TblTmp1
Drop Table Prueba

Una vez mas gracias x tu ayuda y tbm a los demas que de una u otra forma tbm me ayudaron.
  #10 (permalink)  
Antiguo 01/11/2011, 19:31
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Sumar columnas en sql server 2008

No es nada, saludos y suerte.....
__________________
MCTS Isaias Islas

Etiquetas: columnas, registros, server, sql, tabla, campos
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 12:31.