Tri*_*dhi 57 sql sql-server sql-server-2005
我有一个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 |
Run Code Online (Sandbox Code Playgroud)
我想找到SUM的Val1, Val2, Val3,并且将在显示Total列.
aF.*_*aF. 104
简单:
SELECT
Val1,
Val2,
Val3,
(Val1 + Val2 + Val3) as 'Total'
FROM Emp
Run Code Online (Sandbox Code Playgroud)
或者如果你只想要一行:
SELECT
SUM(Val1) as 'Val1',
SUM(Val2) as 'Val2',
SUM(Val3) as 'Val3',
(SUM(Val1) + SUM(Val2) + SUM(Val3)) as 'Total'
FROM Emp
Run Code Online (Sandbox Code Playgroud)
Sal*_*med 40
您还必须了解null记录:
SELECT (ISNULL(Val1,0) + ISNULL(Val2,0) + ISNULL(Val3,0)) as 'Total'
FROM Emp
Run Code Online (Sandbox Code Playgroud)
用法ISNULL:
ISNULL(col_Name, replace value)
Run Code Online (Sandbox Code Playgroud)
mar*_*c_s 24
就像一个普通的SELECT?
SELECT
Val1, Val2, Val3,
Total = Val1 + Val2 + Val3
FROM dbo.Emp
Run Code Online (Sandbox Code Playgroud)
或者您想确定总数并使用这些值更新表格?
UPDATE dbo.Emp
SET Total = Val1 + Val2 + Val3
Run Code Online (Sandbox Code Playgroud)
如果你想让这个总数始终是当前的 - 你的表中应该有一个计算列:
ALTER TABLE dbo.Emp
ADD CurrentTotal AS Val1 + Val2 + Val3 PERSISTED
Run Code Online (Sandbox Code Playgroud)
然后,您将始终获得当前总数 - 即使值发生变化:
SELECT
Val1, Val2, Val3, CurrentTotal
FROM dbo.Emp
Run Code Online (Sandbox Code Playgroud)
小智 5
尝试这个:
select sum(num_tax_amount+num_total_amount) from table_name;
Run Code Online (Sandbox Code Playgroud)