如何在SQL查询中对两个字段进行求和

我需要获得在同一行内的两个字段的总和,并在该行末尾的字段中input该数字。

这是我的代码。

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 

SUM用于对多行中的列进行求和。 你可以只添加你的列:

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

求和函数只获得一列的总和。 为了求和来自不同列的两个值,将这些值转换为int并使用+ -Operator将其相加

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

希望有所帮助。

 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 

由于我的信誉积分低于50,我无法对E Coder的回答发表评论或投票。 这是做这件事的最好方法,所以你不必使用这个组,因为我有类似的问题。
通过做SUM((coalesce(VALUE1 ,0)) + (coalesce(VALUE2 ,0)))这将得到你想要的数字,但也摆脱任何错误不执行分组。 这是我的查询,给了我每个经销商的总数和总金额,然后给了我一个质量和有风险的经销商贷款小计。

 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 

如果你想添加两列,所有你需要做的就是添加它们。 然后,您将获得查询返回的每一行的这两列的总和。

你的代码正在做的是将两列加在一起,然后得到总和。 这将起作用,但它可能不是你想要完成的。