sql-server - por - funciones con valores de tabla sql server
¿Cómo encontrar la diferencia entre los datos de dos columnas? (4)
Hay muchas maneras de hacerlo (y lo animo a buscarlas, ya que serán más eficientes en general), pero la forma más simple de hacerlo es usar una operación no establecida para definir el valor de la tercera columna:
SELECT
t1.previous
,t1.present
,(t1.present - t1.previous) as difference
FROM #TEMP1 t1
Tenga en cuenta que este estilo de selección se considera una mala práctica porque requiere que el plan de consulta vuelva a seleccionar el valor de las dos primeras columnas para determinar lógicamente el tercero (una violación de la teoría de conjuntos en que se basa SQL). Aunque es más complicado, si planea usar esto para evaluar más de los valores que enumeró en su ejemplo, investigaría usando una cláusula APPLY. http://technet.microsoft.com/en-us/library/ms175156(v=sql.105).aspx
Tengo una tabla temporal con dos columnas de datos enteros. Quiero encontrar la diferencia entre dos columnas en la tercera columna.
#TEMP1
Present previous
59 88
75 75
45 45
77 88
09 08
#temp2
Difference
29
0
0
11
-1
Es posible ??
Sí, puede seleccionar los datos, calcular la diferencia e insertar todos los valores en la otra tabla:
insert into #temp2 (Difference)
select previous - Present
from #TEMP1
SI la tabla es alias t
SELECT t.Present , t.previous, t.previous- t.Present AS Difference
FROM temp1 as t
select previous, Present, previous-Present as Difference from tablename
o
select previous, Present, previous-Present as Difference from #TEMP1