Como encontrar a diferença entre dois dados de colunas?

Tenho uma tabela temp com duas colunas de dados inteiros que quero encontrar a diferença entre duas colunas na terceira coluna.

#TEMP1

Present   previous
59           88
75           75
45           45
77           88
09           08

#temp2

Difference
 29
 0
 0
 11 
 -1
Isto é possível ??

Author: vision, 2013-10-02

4 answers

select previous, Present, previous-Present as Difference from tablename

Ou

select previous, Present, previous-Present as Difference from #TEMP1
 17
Author: Mujah Maskey, 2013-10-02 15:12:07
 6
Author: Guffa, 2013-10-02 15:13:42

Se o quadro é também conhecido por t

SELECT t.Present , t.previous, t.previous- t.Present AS Difference
FROM   temp1 as t
 4
Author: Vaibs_Cool, 2013-10-02 15:22:32

Existem muitas maneiras de fazer isso (e eu encorajo você a olha-los como eles podem ser mais eficientes em geral), mas a maneira mais simples de fazer isso é usar um não-definir a operação para definir o valor da terceira coluna:

SELECT
    t1.previous
    ,t1.present
    ,(t1.present - t1.previous) as difference
FROM #TEMP1 t1

Note, this style of selection is considered bad practice because it requires the query plan to reselect the value of the first two columns to logically determine the third (a violation of set theory that SQL is based on). Embora seja mais complicado, se você planeja usar isso para avaliar mais do que os valores que você listou em seu exemplo, eu investigaria usando uma cláusula de Aplicação. http://technet.microsoft.com/en-us/library/ms175156 (V=sql.105).aspx

 2
Author: Daniel King, 2013-10-02 15:18:44