Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/09/2011, 11:24
Avatar de Libras
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