我有一个像这样的用户表
ID Date Value
---------------------------
1001 31 01 14 2035.1
1002 31 01 14 1384.65
1003 31 01 14 1011.1
1004 31 01 14 1187.04
1001 28 02 14 2035.1
1002 28 02 14 1384.65
1003 28 02 14 1011.1
1004 28 02 14 1188.86
1001 31 03 14 2035.1
1002 31 03 14 1384.65
1003 31 03 14 1011.1
1004 31 03 14 1188.86
1001 30 04 14 2066.41
1002 30 04 14 1405.95
1003 30 04 14 1026.66
1004 30 04 14 1207.15
我想像这样从这张表中得到一笔钱
ID Date Value Total
---------------------------------------
1001 31 01 14 2035.1 2035.1
1002 31 01 14 1384.65 1384.65
1003 31 01 14 1011.1 1011.1
1004 31 01 14 1187.04 1187.04
1001 28 02 14 2035.1 4070.2
1002 28 02 14 1384.65 2769.3
1003 28 02 14 1011.1 2022.2
1004 28 02 14 1188.86 2375.9
1001 31 03 14 2035.1 6105.3
1002 31 03 14 1384.65 4153.95
1003 31 03 14 1011.1 3033.3
1004 31 03 14 1188.86 3564.76
1001 30 04 14 2066.41 8171.71
1002 30 04 14 1405.95 5180.61
1003 30 04 14 1026.66 4059.96
1004 30 04 14 1207.15 4771.91
我有id,对于第一个月的每个id,它应该写为total的值,对于该id的第二个月,它应该添加第一个月+第二个月的值,它应该继续这样。如何在SQL中进行此求和?
任何人都可以挽救我的一天吗?
答案 0 :(得分:0)
试试这个
SELECT
ID,
[Date],
Value,
Total = Value + COALESCE(
(
SELECT SUM(Value)
FROM TableName AS s
WHERE s.[Date] < o.[Date] AND s.Id=o.Id), 0
)
FROM TableName AS o
ORDER BY [Date];
答案 1 :(得分:0)
尝试这个。
SELECT ID, Date, Value, SUM(Value) OVER(PARTITION BY ID ORDER BY ID, Date) AS 'Total'
FROM [TableName]