SQL 쿼리 내에서 두 필드를 합산하는 방법


84

동일한 행에있는 총 두 개의 필드를 가져 와서 동일한 행의 끝에있는 필드에 해당 숫자를 입력해야합니다.

이것은 내 코드입니다.

Sum(tbl1.fld1 + tbl1.fld2) AS [Total]

이것이 SUM 함수가 사용되는 용도입니까, 아니면 열 합계를 얻기 위해 SUM 함수 만 사용할 수 있습니까?

감사

답변:


204

SUM집계 함수입니다. 각 그룹의 합계를 계산합니다. +행에서 두 개 이상의 열을 계산하는 데 사용됩니다.

이 예를 고려하십시오.

ID  VALUE1  VALUE2
===================
1   1       2
1   2       2
2   3       4
2   4       5

 

SELECT  ID, SUM(VALUE1), SUM(VALUE2)
FROM    tableName
GROUP   BY ID

결과가 될 것이다

ID, SUM(VALUE1), SUM(VALUE2)
1   3           4
2   7           9

 

SELECT  ID, VALUE1 + VALUE2
FROM    TableName

결과가 될 것이다

ID, VALUE1 + VALUE2
1   3
1   4
2   7
2   9

 

SELECT  ID, SUM(VALUE1 + VALUE2)
FROM    tableName
GROUP   BY ID

결과가 될 것이다

ID, SUM(VALUE1 + VALUE2)
1   7
2   16

10
이 답변은 복잡하지는 않지만 간단하고 필요에 따라 자세하게 설명합니다. 잘 했어!
Bitterblue

1
이 질문에 답할 수있는 가장 좋은 방법은 John에게 좋아요!
Abhijit nov.

29

다음을 시도하십시오.

SELECT *, (FieldA + FieldB) AS Sum
FROM Table

필드가있는 경우, 너무 중요 할 수 INT로 변환하는 포함하는 int를 VARCHAR에
LuigiEdlCarno

@Obl Tobl 나는 동적 컬럼의 합이 원하는
Prashant Pimpale

7

SUM은 여러 행에 대한 열의 값을 합산하는 데 사용됩니다. 열을 함께 추가 할 수 있습니다.

select tblExportVertexCompliance.TotalDaysOnIncivek + tblExportVertexCompliance.IncivekDaysOtherSource AS [Total Days on Incivek]

7
ID  VALUE1  VALUE2
===================
1   1       2

1   2       2
2   3       4
2   4       5

select ID, (coalesce(VALUE1 ,0) + coalesce(VALUE2 ,0) as Total from TableName

5

내 평판 포인트가 50 미만이기 때문에 위의 E Coder의 답변에 대해 댓글을 달거나 투표 할 수 없었습니다. 비슷한 문제가 있었기 때문에 그룹을 사용할 필요가 없도록 이것이 가장 좋은 방법입니다. Total
로 수행 SUM((coalesce(VALUE1 ,0)) + (coalesce(VALUE2 ,0)))하면 원하는 수를 얻을 수있을뿐만 아니라 Group By를 수행하지 않은 오류도 제거 할 수 있습니다. 이것은 내 질문이었고 각 딜러에 대한 총 개수와 총 금액을 제공 한 다음 품질 및 위험 딜러 대출에 대한 소계를 제공했습니다.

SELECT 
    DISTINCT STEP1.DEALER_NBR
    ,COUNT(*) AS DLR_TOT_CNT
    ,SUM((COALESCE(DLR_QLTY,0))+(COALESCE(DLR_RISKY,0))) AS DLR_TOT_AMT
    ,COUNT(STEP1.DLR_QLTY) AS DLR_QLTY_CNT
    ,SUM(STEP1.DLR_QLTY) AS DLR_QLTY_AMT
    ,COUNT(STEP1.DLR_RISKY) AS DLR_RISKY_CNT
    ,SUM(STEP1.DLR_RISKY) AS DLR_RISKY_AMT
    FROM STEP1
    WHERE DLR_QLTY IS NOT NULL OR DLR_RISKY IS NOT NULL
        GROUP BY STEP1.DEALER_NBR

4

sum 함수는 열의 합계 만 가져옵니다. 서로 다른 열의 두 값을 합하려면 값을 int로 변환하고 +-연산자를 사용하여 더합니다.

Select (convert(int, col1)+convert(int, col2)) as summed from tbl1

도움이되기를 바랍니다.


3

두 개의 열을 함께 추가하려면 추가하기 만하면됩니다. 그런 다음 쿼리에서 반환 된 각 행에 대해 두 열의 합계를 얻습니다.

코드에서 수행하는 작업은 두 열을 함께 추가 한 다음 합계를 얻는 것입니다. 작동하지만 달성하려는 것이 아닐 수도 있습니다.


3

열 추가에 대한 알림입니다. 값 중 하나가 NULL이면 해당 열의 합계가 NULL이됩니다. 따라서 일부 포스터에서 두 번째 매개 변수가 0 인 통합을 권장하는 이유

나는 이것이 오래된 게시물이라는 것을 알고 있지만 완전성을 위해 이것을 추가하고 싶었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.