Подтвердить что ты не робот

Как SUM два поля в SQL-запросе

Мне нужно получить общее количество двух полей, которые находятся в одной строке, и ввести это число в поле в конце этой же строки.

Это мой код.

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

Это то, для чего используется функция SUM, или вы можете использовать функцию SUM для получения всего столбца?

Спасибо

4b9b3361

Ответ 1

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

Ответ 2

Попробуйте следующее:

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

Ответ 3

SUM используется для суммирования значения в столбце для нескольких строк. Вы можете просто добавить свои столбцы вместе:

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

Ответ 4

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

Функция суммы получает только общее число столбца. Чтобы суммировать два значения из разных столбцов, преобразуйте значения в int и добавьте их с помощью + -Operator

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

Надеюсь, что это поможет.

Ответ 6

Если вы хотите добавить два столбца вместе, все, что вам нужно сделать, это добавить их. Затем вы получите сумму этих двух столбцов для каждой строки, возвращаемой запросом.

Что делает ваш код, это добавить два столбца вместе, а затем получить сумму сумм. Это будет работать, но это может быть не то, что вы пытаетесь выполнить.

Ответ 7

Из-за того, что мои репутационные очки меньше 50, я не мог комментировать или голосовать за ответ E Coder выше. Это лучший способ сделать это, чтобы вам не пришлось использовать группу, поскольку у меня была аналогичная проблема.
Делая SUM((coalesce(VALUE1 ,0)) + (coalesce(VALUE2 ,0))) как Total, вы получите нужный вам номер, но также избавите вас от какой-либо ошибки, если вы не выполняете Группу. Это был мой запрос и дал мне общее количество и общую сумму для каждого дилера, а затем дал мне промежуточный итог для кредитов качества и рискованных дилерских услуг.

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

Ответ 8

Просто напоминание о добавлении столбцов. Если одно из значений равно NULL, сумма этих столбцов становится NULL. Таким образом, почему некоторые авторы рекомендуют объединиться со вторым параметром, равным 0

Я знаю, что это было старое сообщение, но хотел добавить это для полноты.

Ответ 9

Как я могу найти сумму поля суммы в следующем представлении:

create view V_MonthlyDonation
AS
SELECT YEAR(DonationDate) [Year],MONTH(DonationDate) [Month], DATENAME(MONTH,DonationDate) [Months], COUNT(1) [Donation],Sum(DonationAmount)[Amount]
FROM tblDonation
GROUP BY YEAR(DonationDate), MONTH(DonationDate), 
DATENAME(MONTH, DonationDate)

Это дает следующий результат:

Year   Month months  Donation       Amount
2019    4    April     2            60000
2019    5    May       1            20000
2019    6    June      4            50000