web-dev-qa-db-ja.com

2つの列データの違いを見つける方法は?

整数データの2つの列を持つ一時テーブルがあり、3番目の列の2つの列の差を見つけたい。

#TEMP1

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

#temp2

Difference
 29
 0
 0
 11 
 -1

これは可能ですか??

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

または

select previous, Present, previous-Present as Difference from #TEMP1
20
Mujah Maskey

はい、データを選択し、差を計算し、他のテーブルにすべての値を挿入できます。

insert into #temp2 (Difference)
select previous - Present
from #TEMP1
6
Guffa

テーブルがエイリアスtである場合

SELECT t.Present , t.previous, t.previous- t.Present AS Difference
FROM   temp1 as t
4
Vaibs_Cool

これを行うには多くの方法がありますが(一般的にはより効率的であるため、参照することをお勧めします)、これを行う最も簡単な方法は、非セット操作を使用して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

2
Daniel King