我正在尝试为我的客户订单数据库实施预付系统。我这样做是通过订购表来输入客户的订单,以及Credits表,我可以输入客户的信用卡付款(例如,支付1000美元用于未来的订单)。我已设法使用Union Query将两者合并为一个交易查询,该查询显示所有订单和信用支付,并将信用支付显示为正数,订单显示为负数。此查询按日期排序,从最旧到最新。
对于每位客户,我需要能够了解他或她剩余的预付信用额度。我看到这种情况的方式是让数据库关闭交易查询并保留客户剩余预付信用额的运行总额。但是,我不能只是将所有信用卡付款并减去所有订单,因为这会忽略一些订单不是来自客户的信用额而是用现金支付的事实(例如,如果客户没有当时有任何信用)。我认为运行总数应该是这样的:
Sn + 1 = max {0,Sn + x}
其中Sn是运行总计,x是该客户的Transactions查询中的下一个条目。这样,如果客户的信用额度不足,则运营总额将保持为零,直到他增加更多信贷为止。
我对Access比较陌生,我想知道这种类型的计算是否可行。我是否需要使用表达式生成器或其他方式?