我在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,那么分组是不必要的。如果你想要一个我认为Lamu来自的连续总数,那么你需要某种方式来排序事件