例: 现在有表aa如下
帐号 发生额 总余额
id fse zye
1001 100 100
1001 100 300
1001 100 300
1001 100 400
1001 50 500
1001 50 500
1002 5 5
1002 5 15
1002 5 15
1002 10 25
1002 5 40
1002 10 40
大概如上 不字段大家看出来没```` 有的字段总余额是一样的```其实是不对的``比如1001总余额300的那个第1个300应该是200
就是总余额相同的时候 那相同的字段最后一个总余额肯定是对的 前一个总余额=最后一个余额-最后一个发生额
怎样用语句判断并改过来
求各位帮我做下 谢谢```
不知道我讲的看懂没 没明白的提` 在线等。。在线解释
帐号 发生额 总余额
id fse zye
1001 100 100
1001 100 300
1001 100 300
1001 100 400
1001 50 500
1001 50 500
1002 5 5
1002 5 15
1002 5 15
1002 10 25
1002 5 40
1002 10 40
大概如上 不字段大家看出来没```` 有的字段总余额是一样的```其实是不对的``比如1001总余额300的那个第1个300应该是200
就是总余额相同的时候 那相同的字段最后一个总余额肯定是对的 前一个总余额=最后一个余额-最后一个发生额
怎样用语句判断并改过来
求各位帮我做下 谢谢```
不知道我讲的看懂没 没明白的提` 在线等。。在线解释
DELETE FROM A INNER JOIN #T ON A.ID=#T.ID AND A.FSE=#T.FSE AND A.ZYE=#T.ZYE
INSERT INTO A
SELECT ID,FSE,ZYE-FSE FROM #T
UNION ALL
SELECT ID,FSE,ZYE FROM #T
在关键字 "INNER" 附近有语法错误。
SELECT ID,FSE,ZYE INTO #T FROM A GROUP BY ID,FSE,ZYE HAVING COUNT(1)>1
DELETE FROM A
FROM A
INNER JOIN #T ON A.ID=#T.ID AND A.FSE=#T.FSE AND A.ZYE=#T.ZYE
INSERT INTO A
SELECT ID,FSE,ZYE-FSE FROM #T
UNION ALL
SELECT ID,FSE,ZYE FROM #T
IF OBJECT_ID('TEMPDB..#T') IS NOT NULL DROP TABLE #T
GO
CREATE TABLE AA(ID INT,FSE INT,ZYE INT)
INSERT INTO AA
SELECT 1001, 100, 100 UNION ALL
SELECT 1001, 100, 300 UNION ALL
SELECT 1001, 100, 300 UNION ALL
SELECT 1001, 100, 400 UNION ALL
SELECT 1001, 50, 500 UNION ALL
SELECT 1001, 50, 500 UNION ALL
SELECT 1002, 5, 5 UNION ALL
SELECT 1002, 5, 15 UNION ALL
SELECT 1002, 5, 15 UNION ALL
SELECT 1002, 10, 25 UNION ALL
SELECT 1002, 5, 40 UNION ALL
SELECT 1002, 10, 40
SELECT ID,FSE,ZYE INTO #T FROM AA GROUP BY ID,FSE,ZYE HAVING COUNT(1)>1
DELETE FROM AA
FROM AA
INNER JOIN #T ON AA.ID=#T.ID AND AA.FSE=#T.FSE AND AA.ZYE=#T.ZYE
INSERT INTO AA
SELECT ID,FSE,ZYE-FSE FROM #T
UNION ALL
SELECT ID,FSE,ZYE FROM #T
SELECT * FROM AA
ORDER BY ID ,FSE,ZYE
/*
ID FSE ZYE
----------- ----------- -----------
1001 50 450
1001 50 500
1001 100 100
1001 100 200
1001 100 300
1001 100 400
1002 5 5
1002 5 10
1002 5 15
1002 5 40
1002 10 25
1002 10 40
*/