56,803
社区成员




--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
CREATE TABLE #T(id INT,accountId INT ,[date] DATETIME ,point INT)
Insert #T
select 1,1,'2017-05-29 16:27:38',1 union all
select 2,1,'2017-05-30 16:27:48',-1 union all
select 3,1,'2017-05-31 16:28:06',1 union all
select 4,2,'2017-05-29 16:33:01',1 union all
select 5,2,'2017-05-30 16:33:22',-1
Go
--测试数据结束
SELECT a.accountId ,
SUM(point) AS sumPoint
FROM #T a
LEFT JOIN ( SELECT MAX(id) AS id ,
accountId
FROM #T
WHERE point < 0
GROUP BY accountId
) t ON t.accountId = a.accountId
AND a.id > t.id
GROUP BY a.accountId
SELECT SUM(point) ,
a.accountId
FROM #T a
JOIN ( SELECT MAX(id) AS id ,
accountId
FROM #T
WHERE point < 0
GROUP BY accountId
) t ON t.accountId = a.accountId
AND a.id > t.id
GROUP BY a.accountId