需要显示的表格式(客户应收款表):客户编号|客户名称|期初欠款|本期应收款|本期已收款|期末欠款如果显示某一段时间的客户应收款,如2004/10/01至2004/10/31(此两时间段是变动的)
那么[期初欠款]总要计算数据库中2004/10/01日期之前的所有记录???是这样吗?
我总觉得不太科学,如是之前的记录量较大那么这种做法是很笨的.有什么好方法吗?能否给出您的好方法呢?还是你也是用此方法?

解决方案 »

  1.   

    一个:客户信息表
    一个客户一条记录,里面有应收款,以收款,总金额
    一个:帐户明细表
    每次收款后都保存把明细(有收款ID、总金额、当前应收款、本次收款、余款、收款时间等几个字段)保存在这个表里面,然后更新客户表相应记录,两个表之间使用帐户表的收款的ID号作为键连接。如果你要当前的欠款,那么直接取客户信息表里面的数据就好了,如果要一段时间的数据,则从帐户明细表中得到,因为帐户明细表里面的每条记录都有当前应收款记录,这样的话,你就没有必要统计前面的总数了,你需要查找的只是满足查询时间段的两段的记录了。
      

  2.   

    一张表就可以搞定,实现方式:
    1、“期初”不一定就是“月初”,是指查询日期的头一天,如果我要查询2004-10-10到2004-10-20,那么期初就是2004-10-10而不是2004-9-30日;2、数据表的字段中一定要有:应收金额(借、贷发生额),正数表示应收款,负数表示退款;已收款金额(回款金额);3、SQL语句实现查询
       查询日期<2004-10-10的为期初余额写入一临时表,查询条件范围内的为本期,也定入临时表,再在临时表中统计即可。