[SQL] 어떻게 2005 SQL Server의 테이블에 여러 컬럼의 합계를 찾는 방법은?
SQL어떻게 2005 SQL Server의 테이블에 여러 컬럼의 합계를 찾는 방법은?
나는 이러한 행이있는 테이블 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 |
나는 VAL1, VAL2, Val3의 SUM을 찾으려하고 이는 총 열에 표시됩니다.
해결법
-
==============================
1.쉬운:
쉬운:
SELECT Val1, Val2, Val3, (Val1 + Val2 + Val3) as 'Total' FROM Emp
또는 당신은 단지 하나 개의 행을 원하는 경우 :
SELECT SUM(Val1) as 'Val1', SUM(Val2) as 'Val2', SUM(Val3) as 'Val3', (SUM(Val1) + SUM(Val2) + SUM(Val3)) as 'Total' FROM Emp
-
==============================
2.또한 널 기록을 알고 있어야합니다 :
또한 널 기록을 알고 있어야합니다 :
SELECT (ISNULL(Val1,0) + ISNULL(Val2,0) + ISNULL(Val3,0)) as 'Total' FROM Emp
ISNULL의 사용법 :
ISNULL(col_Name, replace value)
-
==============================
3.그냥 일반 SELECT로?
그냥 일반 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
-
==============================
4.이 시도:
이 시도:
select sum(num_tax_amount+num_total_amount) from table_name;
-
==============================
5.COALESCE를 사용하여 또 다른 예. http://sqlmag.com/t-sql/coalesce-vs-isnull
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
-
==============================
6.안녕 당신은 간단한 쿼리를 사용할 수 있습니다,
안녕 당신은 간단한 쿼리를 사용할 수 있습니다,
select emp_cd, val1, val2, val3, (val1+val2+val3) as total from emp;
경우 새 행을 삽입해야합니다,
insert into emp select emp_cd, val1, val2, val3, (val1+val2+val3) as total from emp;
위해 업데이트하려면
update emp set total = val1+val2+val3;
이 모든 열에 대해 업데이트됩니다
-
==============================
7.
SELECT Emp_cd, Val1, Val2, Val3, SUM(Val1 + Val2 + Val3) AS TOTAL FROM Emp GROUP BY Emp_cd, Val1, Val2, Val3
-
==============================
8.그것이 작동하는 trigges를 사용합니다 -
그것이 작동하는 trigges를 사용합니다 -
-> INSERT ON의 TABLE_NAME BEFORE 트리거 trigger_name의를 CREATE
EACH ROW 세트 NEW.column_name3 = NEW.column_name1 + NEW.column_name2;
당신이 그런 pupose에 대한 귀하의 테이블을 갱신 할 때 당신은 테이블의 행을하지 삽입합니다 경우에만에만 작동합니다 위의 구문에서 INSERT의 자리에 다른 이름 사용 UPDATE의 또 다른 트리거를 작성
from https://stackoverflow.com/questions/11033340/how-to-find-sum-of-multiple-columns-in-a-table-in-sql-server-2005 by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL : CASE 문에있는 사용을위한 별칭 열 이름 (0) | 2020.06.26 |
---|---|
[SQL] A의 필드의 순서는 WHERE 절 MySQL의 성능에 영향을 미칩니 까? (0) | 2020.06.26 |
[SQL] SQL 서버 - 부울 리터럴? (0) | 2020.06.25 |
[SQL] 선별에 SQLite는 지원에게 IF (조건) 문의 어떤 종류를합니까 (0) | 2020.06.25 |
[SQL] 부모 자식 관계에 대한 SQL 쿼리 (0) | 2020.06.25 |