Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 需要根据行计算sum()_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 需要根据行计算sum()

Sql 需要根据行计算sum(),sql,sql-server,tsql,Sql,Sql Server,Tsql,需要逐行计算总和 S1 S2 S3 S4 S5 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 期望输出 S1 S2 S3 S4 S5 SUM 0 0 1 0 1 2 0 1 1 1 1 4 1 1 1 1 0 4 0 1 0 0 0 1 提前谢谢。试试这个

需要逐行计算总和

S1  S2  S3  S4  S5  
0   0   1   0   1  
0   1   1   1   1  
1   1   1   1   0  
0   1   0   0   0    
期望输出

S1  S2  S3  S4  S5  SUM  
0   0   1   0   1   2  
0   1   1   1   1   4  
1   1   1   1   0   4  
0   1   0   0   0   1  
提前谢谢。

试试这个-

模式

DECLARE @table1 TABLE 
(
  s1 int,
  s2 int,
  s3 int,
  s4 int
)

INSERT INTO @table1  VALUES(0,   0,   1,   0)   
INSERT INTO @table1  VALUES(0,   1,   1,   1)
INSERT INTO @table1  VALUES(1,   1,   1,   1)
INSERT INTO @table1  VALUES(0,   1,   1,   0)
查询

SELECT s1, s2, s3, s4, 
(
    SELECT SUM(TotalCnt) FROM (VALUES (s1), (s2), (s3), (s4)) as t(TotalCnt)
) as [Sum]
FROM @table1
SELECT s1, s2, s3, s4, s5,
s1 + s2 + s3 + s4 + s5 AS [SUM]
from tblNum;
结果

s1  s2  s3  s4  Sum
0   0   1   0   1
0   1   1   1   3
1   1   1   1   4
0   1   1   0   2
使用简单的添加:

SELECT s1, s2, s3, s4, s5,
       [SUM] =  s1 + s2 + s3 + s4 + s5
FROM table;
如果任何列可为空,请使用
COALESCE(sN,0)
将其包装


要避免使用
ISNULL/CASE/COALESCE/IIF
处理
NULL
,可以使用
SUM
交叉应用

SELECT s1, s2, s3, s4, s5, sub.[sum]
FROM #tab
CROSS APPLY(SELECT SUM(c) 
            FROM (VALUES (s1), (s2), (s3), (s4), (s5)) AS s(c)
            ) AS sub([sum])

只需
+

查询

SELECT s1, s2, s3, s4, 
(
    SELECT SUM(TotalCnt) FROM (VALUES (s1), (s2), (s3), (s4)) as t(TotalCnt)
) as [Sum]
FROM @table1
SELECT s1, s2, s3, s4, s5,
s1 + s2 + s3 + s4 + s5 AS [SUM]
from tblNum;

一个简单的解决方案是执行下一个查询:

select s1, s2, s3, s4, s5,isnull(s1,0) + isnull(s2,0) + isnull(s3,0) + isnull(s4,0) + isnull(s5,0) as Total
from table

试试这个:-

 SELECT  [S1] ,[S2],[S3] ,[S4],[S5], sum(S1+S2+S3+S4+S5) as sum
  FROM TableName
  group by [S1],[S2],[S3] ,[S4],[S5]

您在第三行出现错误
10
is
4
not
3
我们看不出您的代码的哪一部分导致了问题。你的问题中有什么遗漏吗?