SQL 查询对多行的多列求和
SQL query to sum multiple columns across multiple rows
我在 SQL 服务器中有一个 table 每个 ID 有多行。在两列中也需要减去一些值。在下面的示例中,我需要减去 1033.90 - 1033.90 - 1181.60 等于 -1181.60.
ID
Value1
Value2
1
1033.90
0.00
1
0.00
1033.90
1
1181.60
0.00
我已经尝试了几种从其他人的问题中找到的不同方法,但都没有奏效。 Cross Joins 或 Unions 似乎是一种方式,但尚未给出所需的结果。谁能提供线索?
您似乎想要的只是按 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,则不需要分组依据。如果你想要一个 运行 我认为是 Lamu 来自的总数,那么你需要一些排序事件的方法
我在 SQL 服务器中有一个 table 每个 ID 有多行。在两列中也需要减去一些值。在下面的示例中,我需要减去 1033.90 - 1033.90 - 1181.60 等于 -1181.60.
ID | Value1 | Value2 |
---|---|---|
1 | 1033.90 | 0.00 |
1 | 0.00 | 1033.90 |
1 | 1181.60 | 0.00 |
我已经尝试了几种从其他人的问题中找到的不同方法,但都没有奏效。 Cross Joins 或 Unions 似乎是一种方式,但尚未给出所需的结果。谁能提供线索?
您似乎想要的只是按 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,则不需要分组依据。如果你想要一个 运行 我认为是 Lamu 来自的总数,那么你需要一些排序事件的方法