78

Empこれらの行を持つテーブルがあります:

Emp_cd | Val1  | Val2  | Val3  | Total
-------+-------+-------+-------+-------
 1     | 1.23  | 2.23  | 3.43  | 
 2     | 23.03 | 12.23 | 2.92  |
 3     | 7.23  | 9.05  | 13.43 |
 4     | 03.21 | 78.23 | 9.43  |

列に表示される とを見つけたいですSUMVal1, Val2, Val3Total

4

9 に答える 9

139

簡単:

SELECT 
   Val1,
   Val2,
   Val3,
   (Val1 + Val2 + Val3) as 'Total'
FROM Emp

または、1行だけが必要な場合:

SELECT 
   SUM(Val1) as 'Val1',
   SUM(Val2) as 'Val2',
   SUM(Val3) as 'Val3',
   (SUM(Val1) + SUM(Val2) + SUM(Val3)) as 'Total'
FROM Emp
于 2012-06-14T12:49:43.603 に答える
49

nullまた、次の記録にも注意する必要があります。

SELECT  (ISNULL(Val1,0) + ISNULL(Val2,0) + ISNULL(Val3,0)) as 'Total'
FROM Emp

の使用法ISNULL:

ISNULL(col_Name, replace value)
于 2014-11-05T11:24:57.777 に答える
29

いつものようにSELECT

SELECT 
   Val1, Val2, Val3,
   Total = Val1 + Val2 + Val3
FROM dbo.Emp

それとも、その合計を決定し、それらの値でテーブルを更新しますか?

UPDATE dbo.Emp
SET Total = Val1 + Val2 + Val3

この合計を常に最新にしたい場合は、テーブルに計算列が必要です。

ALTER TABLE dbo.Emp
ADD CurrentTotal AS Val1 + Val2 + Val3 PERSISTED

次に、値が変更された場合でも、常に現在の合計を取得します。

SELECT 
   Val1, Val2, Val3, CurrentTotal
FROM dbo.Emp
于 2012-06-14T12:48:40.457 に答える
0

COALESCE を使用した別の例。http://sqlmag.com/t-sql/coalesce-vs-isnull

SELECT (COALESCE(SUM(val1),0) + COALESCE(SUM(val2), 0)
+ COALESCE(SUM(val3), 0) + COALESCE(SUM(val4), 0)) AS 'TOTAL'
FROM Emp
于 2016-02-02T18:25:12.567 に答える