计算行明智的总和-SQL Server [英] calculate Row Wise Sum - Sql server

查看:70
本文介绍了计算行明智的总和-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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆