ändern - Wie finde ich die Summe mehrerer Spalten in einer Tabelle in SQL Server 2005?




tsql add column (6)

Ich habe eine Tabelle Emp die diese Zeilen hat:

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  |

Ich möchte Val1, Val2, Val3 von Val1, Val2, Val3 finden, die in der Spalte Total Val1, Val2, Val3 werden.



Einfach:

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

oder wenn du nur eine Zeile willst:

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

Sie müssen auch auf null Datensätze achten:

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

Verwendung von ISNULL :

ISNULL(col_Name, replace value)

Versuche dies:

select sum(num_tax_amount+num_total_amount) from table_name;

Wie ein regulärer SELECT ?

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

Oder möchten Sie diese Summe ermitteln und die Tabelle mit diesen Werten aktualisieren?

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

Wenn Sie möchten, dass diese Summe zu jeder Zeit aktuell ist, sollten Sie eine berechnete Spalte in Ihrer Tabelle haben:

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

Dann erhalten Sie immer die aktuelle Summe - auch wenn sich die Werte ändern:

SELECT 
   Val1, Val2, Val3, CurrentTotal
FROM dbo.Emp

SELECT Emp_cd, Val1, Val2, Val3, SUM(Val1 + Val2 + Val3) AS TOTAL 
FROM Emp
GROUP BY Emp_cd, Val1, Val2, Val3






sql-server-2005