整数データの2つの列を持つ一時テーブルがあり、3番目の列の2つの列の差を見つけたい。
#TEMP1
Present previous
59 88
75 75
45 45
77 88
09 08
#temp2
Difference
29
0
0
11
-1
これは可能ですか??
select previous, Present, previous-Present as Difference from tablename
または
select previous, Present, previous-Present as Difference from #TEMP1
はい、データを選択し、差を計算し、他のテーブルにすべての値を挿入できます。
insert into #temp2 (Difference)
select previous - Present
from #TEMP1
テーブルがエイリアスt
である場合
SELECT t.Present , t.previous, t.previous- t.Present AS Difference
FROM temp1 as t
これを行うには多くの方法がありますが(一般的にはより効率的であるため、参照することをお勧めします)、これを行う最も簡単な方法は、非セット操作を使用して3番目の列の値を定義することです:
SELECT
t1.previous
,t1.present
,(t1.present - t1.previous) as difference
FROM #TEMP1 t1
このスタイルの選択は、最初の2列の値を再選択して3番目(SQLの基になっている集合論の違反)を論理的に決定する必要があるため、悪い選択と見なされます。より複雑ですが、これを使用して、例にリストした値よりも多く評価する場合は、APPLY句を使用して調査します。 http://technet.Microsoft.com/en-us/library/ms175156(v = sql.105).aspx