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

restar en sql 2008

Estas en el tema de restar en sql 2008 en el foro de SQL Server en Foros del Web. ojala alguienme pueda ayudar tengo un problemita en sql quieor restar la suma de unas columnas en sql segun un campo en especifico tnego una ...
  #1 (permalink)  
Antiguo 19/07/2013, 10:00
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 2
restar en sql 2008

ojala alguienme pueda ayudar tengo un problemita en sql
quieor restar la suma de unas columnas en sql segun un campo en especifico

tnego una tabla donde guardo el precio de un gasto y el tipo de casto

tabla
-------
precio
descrip
tipoGasto


ej.

190
comida
egreso


ej

200
formateo pc
ingreso

y quiero sacar la resta de esas columnas

sacar la suma total de mis ingresos y mis egresos
y que me arroje una respuesta

tengo el siguiente codigo
Cita:
select SUM(precio) as ingreso from t_Movimiento where tipoMovimiento = 'EGRESO' -
(select SUM(precio) as ingreso from t_Movimiento where tipoMovimiento = 'INGRESO')
pero me marca error

y lo puedo hacer de la siguiente manera marcando variables
pero no lo quiero hacer de ese modo por que no puedo pasarlo al c#

Cita:
declare @n1 money, @n2 money, @sum money
set @n1 = (select SUM(precio) as Total from t_Movimiento where tipoMovimiento = 'EGRESO')
set @n2 = (select SUM(precio) as Total from t_Movimiento where tipoMovimiento = 'INGRESO')
set @sum = @n1 - @n2
print @n1
print @n2
print '-----'
print @sum
espero alguien me pueda ayudar

gracias amigos
__________________
si siempre hay algo nuevo que aprender
  #2 (permalink)  
Antiguo 19/07/2013, 10:04
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: restar en sql 2008

Código SQL:
Ver original
  1. CREATE TABLE #resta(
  2. tipo_mov VARCHAR(200),
  3. monto INT
  4. )
  5.  
  6. INSERT INTO #resta VALUES ('I',10)
  7. INSERT INTO #resta VALUES ('I',20)
  8. INSERT INTO #resta VALUES ('I',30)
  9. INSERT INTO #resta VALUES ('I',40)
  10. INSERT INTO #resta VALUES ('I',50)
  11. INSERT INTO #resta VALUES ('E',30)
  12. INSERT INTO #resta VALUES ('E',40)
  13. INSERT INTO #resta VALUES ('E',50)
  14.  
  15.  
  16. SELECT SUM(monto)-(SELECT SUM(monto) FROM #resta WHERE tipo_mov='E') total FROM #resta WHERE tipo_mov='I'

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 19/07/2013, 10:13
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: restar en sql 2008

Libras muchas gracias no andaba tan perdido solo tenia que borrar un troso de mi codigo
muchas gracias amigo por tus ayudas..

saludos
__________________
si siempre hay algo nuevo que aprender
  #4 (permalink)  
Antiguo 19/07/2013, 13:26
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: restar en sql 2008

y si quiero mostrar en ua sola consulta
la suma de los ingresos, la suma de los egresos y la cantidad de la resta??

se puede?? en una sola consulta??
__________________
si siempre hay algo nuevo que aprender
  #5 (permalink)  
Antiguo 19/07/2013, 13:32
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: restar en sql 2008

Código SQL:
Ver original
  1. CREATE TABLE #resta(
  2. tipo_mov VARCHAR(200),
  3. monto INT
  4. )
  5.  
  6. INSERT INTO #resta VALUES ('I',10)
  7. INSERT INTO #resta VALUES ('I',20)
  8. INSERT INTO #resta VALUES ('I',30)
  9. INSERT INTO #resta VALUES ('I',40)
  10. INSERT INTO #resta VALUES ('I',50)
  11. INSERT INTO #resta VALUES ('E',30)
  12. INSERT INTO #resta VALUES ('E',40)
  13. INSERT INTO #resta VALUES ('E',50)
  14.  
  15.  
  16. SELECT (SELECT SUM(monto) total FROM #resta WHERE tipo_mov='I') AS ingresos, (SELECT SUM(monto) FROM #resta WHERE tipo_mov='E') AS egresos,
  17. (SELECT SUM(monto)-(SELECT SUM(monto) FROM #resta WHERE tipo_mov='E') total FROM #resta WHERE tipo_mov='I') AS total

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 19/07/2013, 14:54
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: restar en sql 2008

muchas gracias Libras, siempre me sirve tu información

gracias..
en esa consulta si no tenia gran idea como hacerla
__________________
si siempre hay algo nuevo que aprender

Etiquetas: restar, select, sql, 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 06:55.