先两个表join 在order by time
select * from (select * from A union select * from B) as C order by time asc;
A表和B表字段数目要相同,SQL未测试
######回复
@神州浪子 : 是的,开始没看到余额,这余额好像没办法直接搞出来,要是把余额单独建一次表,每次操作后把余额计算对应存进去,不知道行不行得通######谢谢,思路很好,只是后面的余额计算很麻烦######
第一,你错在把存取款放在俩表里。
第二,你这两个表里总得有个 account id 吧,这样才能 join 啊
哎,
######刚看了下 原来的表是有关联id的。。 现在更改了 麻烦帮忙看看能解决么######我也不知道是哪个混蛋设计的表。。。 假设有ID,这个SQL应该怎么写呢?######
select u,'存款',金额,时间 , ((select sum(存款金额) from a as a1 where a1.时间 <= a.时间) -(select sum(取款金额) from b as b1 where b1.时间 <= a.时间)) as 余额 from a
uniun
select u,'取款',金额,时间 , ((select sum(存款金额) from a as a1 where a1.时间 <= b.时间) -(select sum(取款金额) from b as b1 where b1.时间 <= b.时间)) as 余额 from b
仅供参考..
######用日期和存款、取款分组,sum(存款)—sum(取款),两表用用户关联######写一个存储过程将b表插入a表如何?取款字段为负######
会用窗口函数一点都不麻烦,不过MYSQL好像没有这个武器
######一个查询,结果OK SELECT c.* ,(SELECT sum(d.e) FROM (SELECT a.date,a.money as e FROM a UNION SELECT b.date,-b.money as e FROM b) as d WHERE d.date <= c.date) as '余额' FROM (SELECT * FROM a UNION SELECT * FROM b) as c ORDER BY c.date;######应该就一个表,存取用不同的标识才好嘛