计算行明智的总和-SQL Server [英] calculate Row Wise Sum - Sql server
本文介绍了计算行明智的总和-SQL Server的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的表:
ID Q1 Q2 Q3 Q4
----------------------------------------------------------------
20130712 NULL 728.63 NULL NULL
20130712 8881.55 9673.68 2629.566 6251.984
20130713 1813 1813 84.49 1728.51
20130714 3632.65 3632.65 1209.412 2423.238
20130714 70.758 2637.43 70.758 0
20130714 1601.578 3569.73 204.745 1396.833
20130714 728.63 728.63 0 728.63
20130714 1401.629 2251.39 94.418 1307.211
20130715 583.956 5089.19 583.956 0
20130805 6317.277 8958 2629.566 3687.711
我想要下面的输出(列可能会动态变化,需要逐行计算总和)
I want the output like below.(The columns might change dynamically, needs to calculate Sum by row wise)
ID Q1 Q2 Q3 Q4 SUM(Q1:Q4)
---------------------------------------------------------------------------
20130712 NULL 728.63 NULL NULL 728.63
20130712 8881.55 9673.68 2629.566 6251.984 27436.78
20130713 1813 1813 84.49 1728.51 5439
20130714 3632.65 3632.65 1209.412 2423.238 ...
20130714 70.758 2637.43 70.758 0
20130714 1601.578 3569.73 204.745 1396.833
20130714 728.63 728.63 0 728.63
20130714 1401.629 2251.39 94.418 1307.211
20130715 583.956 5089.19 583.956 0
20130805 6317.277 8958 2629.566 3687.711
推荐答案
您没有在以下位置显示查询诱惑,但可能是这样的:
You haven't shown your query attempt, but it's probably something like this:
SELECT
ID, Q1, Q2, Q3, Q4,
Q1 + Q2 + Q3 + Q4 AS "Total"
FROM MyTable
Q1
, Q2
, Q3
或 Q4
的值为空, Q1 + Q2 + Q3 + Q4
的值为空。要将空值视为零并获得适当的总和,请执行以下操作:
If any of the Q1
, Q2
, Q3
, or Q4
values are null, Q1 + Q2 + Q3 + Q4
will be null. To treat the nulls as zero and get a proper sum, do this instead:
SELECT
ID, Q1, Q2, Q3, Q4,
COALESCE(Q1,0) + COALESCE(Q2,0) + COALESCE(Q3,0) + COALESCE(Q4,0) AS "Total"
FROM MyTable
COALESCE
函数将返回列表中的第一个非空值。
The COALESCE
function will return the first non-null value in the list.
这篇关于计算行明智的总和-SQL Server的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文