2013-10-02 43 views

Odpowiedz

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

lub

4

Jeśli tabela jest alias t

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

Tak, można wybrać dane, obliczyć różnicę, a następnie włóż wszystkie wartości w drugiej tabeli:

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

Można to zrobić na wiele sposobów (i zachęcam do ich sprawdzenia, ponieważ będą one ogólnie wydajniejsze), ale najprostszym sposobem jest użycie nie ustawionej operacji do zdefiniowania wartości trzeciej kolumny:

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

Uwaga: ten styl selekcji jest uważany za złą praktykę, ponieważ wymaga, aby w planie kwerendy ponownie wybrano wartość dwóch pierwszych kolumn, aby określić logicznie trzecią (naruszenie teorii mnogości opartej na SQL). Chociaż jest to bardziej skomplikowane, jeśli planujesz użyć tego do oceny większej niż wartości wymienione w twoim przykładzie, chciałbym zbadać zastosowanie klauzuli APPLY. http://technet.microsoft.com/en-us/library/ms175156(v=sql.105).aspx