3

我想将 Punten1、Punten 2、Punten 3、Punten4 的值加总。但我只知道如何对列中的值求和。但不是跨行。有谁知道如何做到这一点。

SELECT Punten1, Punten2, Punten3, Punten4
Punten1 + Punten 2 + Punten3 + Punten4 as Puntentotaal
FROM puntentotaal

所以我想在一个新列中总结 Punten1、Punten 2、Punten 3、Punten4 的值:puntentotaal 谢谢!

4

2 回答 2

4
SELECT Punten1, Punten2, Punten3, Punten4, 
Punten1 + Punten2 + Punten3 + Punten4 as Puntentotaal
FROM puntentotaal;

只是一个额外的逗号。我假设您的表作为列的唯一 ID。

UPDATE puntentotaal AS t1 INNER JOIN puntentotaal AS t2 SET t1.Puntentotaal = 
(t2.Punten1 + t2.Punten2 + t2.Punten3 + t2.Punten4) where t1.ID = t2.ID;

这将更新所有行中 Puntentotaal 列中 Punten1、Punten 2、Punten 3、Punten4 的总和。

于 2013-01-28T12:15:07.390 回答
1

您的问题标题为“跨行总和”,但您想要实现的是跨列总和。

如果您正在寻找“跨行总和”,则有一个名为SUM(field_name)的函数将为您提供所有选定行的特定字段的总和,您可以将此函数与 GROUP BY 一起使用

如果您正在寻找“跨列总和”,那么您使用 + 号就可以了,只需按照@paul 的建议添加逗号即可。

于 2013-01-28T12:16:30.720 回答