development

SQL Server 2005의 테이블에서 여러 열의 합계를 찾는 방법은 무엇입니까?

big-blog 2020. 12. 26. 16:28
반응형

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  |

내가 찾으려 SUMVal1, Val2, Val3어느은에 표시됩니다 Total열입니다.


쉬운:

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

또한 다음과 같은 null기록을 알고 있어야 합니다.

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

사용법 ISNULL:

ISNULL(col_Name, replace value)

일반처럼 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

이 시도:

select sum(num_tax_amount+num_total_amount) from table_name;

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

안녕하세요 간단한 쿼리를 사용할 수 있습니다.

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;

In order to update,

update emp set total = val1+val2+val3;

This will update for all comumns


use a trigges it will work:-

->CREATE TRIGGER trigger_name BEFORE INSERT ON table_name

FOR EACH ROW SET NEW.column_name3 = NEW.column_name1 + NEW.column_name2;

this will only work only when you will insert a row in table not when you will be updating your table for such a pupose create another trigger of different name and use UPDATE on the place of INSERT in the above syntax


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

ReferenceURL : https://stackoverflow.com/questions/11033340/how-to-find-sum-of-multiple-columns-in-a-table-in-sql-server-2005

반응형