SQL查询对多行的多列求和

阿里戈布

我在 SQL Server 中有一个表,每个 id 有多行。在两列中也需要减去一些值。在下面的示例中,我需要减去 1033.90 - 1033.90 - 1181.60 以等于 -1181.60。

ID 价值1 价值2
1 1033.90 0.00
1 0.00 1033.90
1 1181.60 0.00

我尝试了从其他人的问题中找到的几种不同方法,但还没有任何效果。交叉连接或联合似乎是一种方式,但尚未给出所需的结果。任何人都可以提供任何线索吗?

鲑鱼

您似乎想要的只是一个按 id 分组的总和

DROP TABLE IF EXISTS T;

CREATE TABLE T
(ID INT,    Value1 DECIMAL(10,2),   Value2 DECIMAL(10,2));
INSERT INTO T VALUES
(1, 1033.90 ,0.00),
(1, 0.00       ,1033.90),
(1, 1181.60 ,0.00);


SELECT ID , SUM(VALUE1) - SUM(VALUE2) AS TOT
FROM T
GROUP BY ID;

+------+---------+
| ID   | TOT     |
+------+---------+
|    1 | 1181.60 |
+------+---------+
1 row in set (0.001 sec)

如果您只有 1 个 ID,则不需要 group by。如果你想要一个我认为 Lamu 来自哪里的运行总数,那么你需要某种方式来排序事件

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章