Ich habe eine Tabelle Emp
mit folgenden Zeilen:
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 finden SUM
von Val1, Val2, Val3
und die in der zeigen wird Total
Spalte.
sql
sql-server
sql-server-2005
Tripati Subudhi
quelle
quelle
Antworten:
Einfach:
SELECT Val1, Val2, Val3, (Val1 + Val2 + Val3) as 'Total' FROM Emp
oder wenn Sie nur eine Zeile möchten:
SELECT SUM(Val1) as 'Val1', SUM(Val2) as 'Val2', SUM(Val3) as 'Val3', (SUM(Val1) + SUM(Val2) + SUM(Val3)) as 'Total' FROM Emp
quelle
Valx
wird diese Abfrage unterbrochen, wenn sie für alle Zeilen null ist.NVL(value, default value)
kann im Bienenstock anstelle vonISNULL
Sie müssen auch über
null
Aufzeichnungen informiert sein:SELECT (ISNULL(Val1,0) + ISNULL(Val2,0) + ISNULL(Val3,0)) as 'Total' FROM Emp
Verwendung von
ISNULL
:ISNULL(col_Name, replace value)
quelle
mysql
, müssen SieIFNULL()
Nur als Stammgast
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 jederzeit 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
quelle
Versuche dies:
select sum(num_tax_amount+num_total_amount) from table_name;
quelle
Ein weiteres Beispiel mit 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
quelle
Hallo, Sie können eine einfache Abfrage verwenden,
select emp_cd, val1, val2, val3, (val1+val2+val3) as total from emp;
Falls Sie eine neue Zeile einfügen müssen,
insert into emp select emp_cd, val1, val2, val3, (val1+val2+val3) as total from emp;
Um zu aktualisieren,
update emp set total = val1+val2+val3;
Dies wird für alle Herbst aktualisiert
quelle
SELECT Emp_cd, Val1, Val2, Val3, SUM(Val1 + Val2 + Val3) AS TOTAL FROM Emp GROUP BY Emp_cd, Val1, Val2, Val3
quelle
Group By
AndSUM
? Hinzufügen ? Sie ändern einfach eine der Antworten, indem Sie sie langsamer machen! ;).Verwenden Sie einen Trigger, es wird funktionieren: -
-> CREATE TRIGGER Triggername BEVOR INSERT ON Tabellenname
FÜR JEDEN REIHENSATZ NEW.column_name3 = NEW.column_name1 + NEW.column_name2;
Dies funktioniert nur, wenn Sie eine Zeile in eine Tabelle einfügen, nicht, wenn Sie Ihre Tabelle für eine solche Gruppe aktualisieren. Erstellen Sie einen weiteren Trigger mit einem anderen Namen und verwenden Sie UPDATE anstelle von INSERT in der obigen Syntax
quelle