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

Como restar dos valores en una misma columna.

Estas en el tema de Como restar dos valores en una misma columna. en el foro de SQL Server en Foros del Web. Buenos dias a toda la gran comunidad de foros del web, mi consulta es la siguiente, necesito obtener la diferencia entre dos valores consignados en ...
  #1 (permalink)  
Antiguo 20/09/2011, 07:33
 
Fecha de Ingreso: octubre-2005
Mensajes: 188
Antigüedad: 18 años, 6 meses
Puntos: 0
Como restar dos valores en una misma columna.

Buenos dias a toda la gran comunidad de foros del web, mi consulta es la siguiente, necesito obtener la diferencia entre dos valores consignados en una misma columna de una tabla, me explico, en la tabla tengo 3 columnas identificadas con los nombres: codigo, precio_unitario, fecha_desactivacion; necesito obtener la resta entre dos campos que tienen el codigo 701 y 702 y cuya fecha_desactivacion sea null.

codigo precio_unitario fecha_desactivacion
701 50000 null
701 45000 15/09/2011
702 120000 null
702 110000 16/09/2011

en este caso me devolveria 70000 que es la diferencia.
Cualquier ayuda muchas gracias de antemano.
  #2 (permalink)  
Antiguo 20/09/2011, 09:21
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: Como restar dos valores en una misma columna.

Pregunta, siempre vas a utilizar los valores de 701 y 702 para los id's??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 20/09/2011, 09:55
 
Fecha de Ingreso: octubre-2005
Mensajes: 188
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Como restar dos valores en una misma columna.

Si señor, estos dos son los que me interesan por ahora, si me podes tirar un cable te lo agradeceria, basicamente es con una aplicacion visual basic 6 que estoy trabajando, en un msgbox pregunto si desea generar un comprobante, si da clic en la opcion si, me haga la consulta y me obtenga el valor de la diferencia.
  #4 (permalink)  
Antiguo 20/09/2011, 11:24
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: Como restar dos valores en una misma columna.

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. codigo INT,
  4. precio_unitario INT,
  5. fecha_desactivacion datetime
  6. )
  7.  
  8. INSERT INTO #temp VALUES (701,50000,NULL)
  9. INSERT INTO #temp VALUES (701,45000,'09/15/2011')
  10. INSERT INTO #temp VALUES (702,120000,NULL)
  11. INSERT INTO #temp VALUES (702,110000,'09/16/2011')
  12.  
  13. INSERT INTO #temp VALUES (701,80000,NULL)
  14. INSERT INTO #temp VALUES (701,25000,'09/15/2011')
  15. INSERT INTO #temp VALUES (702,200000,NULL)
  16. INSERT INTO #temp VALUES (702,110000,'09/16/2011')
  17.  
  18.  
  19. SELECT * FROM (
  20. SELECT t2.precio_unitario-t1.precio_unitario AS resultado FROM #temp AS t1
  21. LEFT JOIN #temp AS t2 ON (t1.codigo<>t2.codigo)
  22. WHERE t1.fecha_desactivacion IS NULL AND t2.fecha_desactivacion IS NULL
  23. ) t1 WHERE resultado>0
  24.  
  25. Resultado
  26. 70000
  27. 40000
  28. 150000
  29. 120000

Aqui veo algo raro, si lo haces asi como mencionas y en el ejemplo que puse tenemos que 701 tiene 2 valores con fecha null y 702 tambien por lo que haria las operaciones mas veces asi esta bien???

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 20/09/2011, 13:43
 
Fecha de Ingreso: octubre-2005
Mensajes: 188
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Como restar dos valores en una misma columna.

No, solo va a haber un valor de codigo con fecha_desactivacion = null.
Hay varios registros con codigo 701 y fecha_desactivacion diferente de null.

codigo precio_unitario fecha_desactivacion
701 - 50240 - null
701 - 7707 - 10/03/05
701 - 10145 - 26/02/06
701 - 5000 - 02/02/09
701 - 50000 - 17/02/11

codigo precio_unitario fecha_desactivacion
702 - 120000 - 17/02/11
702 - 15422 - 26/02/06
702 - 120576 - null
702 - 22000 - 24/02/08
702 - 10000 - 02/02/09

Estos son datos que tengo en la tabla, y para saber que codigo es el que debemos llamar para obtener el precio nos guiamos que la fecha_desactivacion sea null, si hay que cambiar algo, insertamos un nuevo registro con fecha_desactivacion igual a null y el que habia se le pone una fecha y listo.

Gracias por tu respuesta, la consulta que me pasaste me bota un error missing right parenthesis, estoy usando motor oracle.
  #6 (permalink)  
Antiguo 20/09/2011, 14:35
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: Como restar dos valores en una misma columna.

Cita:
Iniciado por Ace_ventura Ver Mensaje
No, solo va a haber un valor de codigo con fecha_desactivacion = null.
Hay varios registros con codigo 701 y fecha_desactivacion diferente de null.

Estos son datos que tengo en la tabla, y para saber que codigo es el que debemos llamar para obtener el precio nos guiamos que la fecha_desactivacion sea null, si hay que cambiar algo, insertamos un nuevo registro con fecha_desactivacion igual a null y el que habia se le pone una fecha y listo.

Gracias por tu respuesta, la consulta que me pasaste me bota un error missing right parenthesis, estoy usando motor oracle.
Si es asi la consulta funciona, pero tal cual la sintaxis no te va a servir necesitarias modificar la misma para Oracle ya que el query que te pase es para MS SQL Server porque este es un foro de SQL SERVER
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 20/09/2011, 15:39
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: Como restar dos valores en una misma columna.

Pequeño detalle....
__________________
MCTS Isaias Islas
  #8 (permalink)  
Antiguo 20/09/2011, 16:52
 
Fecha de Ingreso: octubre-2005
Mensajes: 188
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Como restar dos valores en una misma columna.

Ok, no me habia fijado como tal del nombre del foro, pero igual ya lo solucione con lo que me dijiste acerca de la sintaxis de oracle, muchas gracias.

Etiquetas: fecha, restar, 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 09:34.