동일한 행에있는 총 두 개의 필드를 가져 와서 동일한 행의 끝에있는 필드에 해당 숫자를 입력해야합니다.
이것은 내 코드입니다.
Sum(tbl1.fld1 + tbl1.fld2) AS [Total]
이것이 SUM 함수가 사용되는 용도입니까, 아니면 열 합계를 얻기 위해 SUM 함수 만 사용할 수 있습니까?
감사
답변:
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
다음을 시도하십시오.
SELECT *, (FieldA + FieldB) AS Sum
FROM Table
내 평판 포인트가 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
두 개의 열을 함께 추가하려면 추가하기 만하면됩니다. 그런 다음 쿼리에서 반환 된 각 행에 대해 두 열의 합계를 얻습니다.
코드에서 수행하는 작업은 두 열을 함께 추가 한 다음 합계를 얻는 것입니다. 작동하지만 달성하려는 것이 아닐 수도 있습니다.