有下面数据表:
期初数据表
年度 客户 期初
2013 A 1000
期间流入业务数据表
日期 客户 流入
2013-1-2 A 100
2013-1-4 A 200
2013-1-1 B 300
(其中B客户期初没有,是新增加的客户,有业务发生)
期间流出业务数据表
日期 客户 流出
2013-1-2 A 50
2013-1-3 A 100
假设今天是2013-1-5号,如果某个客户作为条件(假设条件是A),要求查询出昨天为止的历史流水帐
日期 客户 期初 流入 流出 本日结存
2013-1-1 A 1000 0 0 1000
2013-1-2 A 1000 100 50 1050
2013-1-3 A 1050 0 100 950
2013-1-4 A 950 200 0 1150
如果条件是B,则流水帐如下
日期 客户 期初 流入 流出 本日结存
2013-1-1 B 0 300 0 300
2013-1-2 B 300 0 0 300
2013-1-3 B 300 0 0 300
2013-1-4 B 300 0 0 300
这样的历史流水帐,能否查询得出来,用什么方法(只要得出正确的结果)比较合适。
(只要求查询有业务发生的的记录,不要求每天都列示(之前做了每天列示的,查询一次要5个多小时))
谢谢
------解决方案--------------------
sql我就不写了,给你个思路吧,能做这业务的sql功底应该有点的
假设是找的是A的数据
起初通过3个表合并数据得到如下数据,并增加自标示列id
id 日期 客户 期初 流入 流出 本日结存
1 2013-1-1 A 1000 0 0 1000
2 2013-1-2 A null 100 50 null
3 2013-1-3 A null 0 100 null
4 2013-1-4 A null 200 0 null
再通过对id列的递归算出期初和结存