表1:员工
EmpId CreatedAt
100 2015-11-09 07:21:02
200 2017-01-24 18:24:01
300 2016-08-20 06:55:35
表2:帐户
AccId EmpID Currency CreatedAt
9000 100 USD 2017-04-20 19:40:55
9001 200 USD 2017-04-20 19:40:55
9002 100 EUR 2017-05-20 19:40:55
9003 200 USD 2017-04-20 19:40:55
9004 100 USD 2017-04-20 19:40:55
表3:交易
TrnsId AccId Amount CreatedAt
10 9000 3000 2017-04-25 19:40:55
11 9001 500 2017-05-25 19:40:55
12 9000 -200 2017-05-30 19:40:55
13 9000 -500 2017-06-11 19:40:55
创建一个表,该表提供自首次创建以来每个帐户的日末余额(午夜),即,该帐户存在的每一天在表中应有一个条目,其余额应在该末尾天。
有人可以帮我写上述情况的查询吗?
谢谢。
答案 0 :(得分:0)
由于您尚未发布任何解决方案,因此我认为您需要朝正确的方向进行初步调整。希望这会有所帮助。
将Account
表外部联接到日历中每天都有一行的表(如果没有该表,则创建该表)(通常称为“理货表”) 。过滤掉日历中创建帐户之前的日期。
对于每个Account-Date
组合,将产生一行结果,即结果中要包含的所有行。
从那里开始,只需在该Account
上添加具有该Date
的日末余额的列即可。有很多方法可以做到这一点。 Google“ SQL运行总计”,然后选择您喜欢的方法。