我正在尝试编写一个存储过程,它将每天运行并检查发票是否过期。我想从表中提取所有未付款的发票,然后我想查看它们并找出今天日期和下订单日期之间的差异。从那里我想检查该订单的账户条款是什么(基本上他们必须支付多长时间),如果他们超过了条款,那么我将计算服务费并更新 balanceue。我对要做什么有一个基本的想法,但我不知道如何在不遍历每个记录的情况下浏览所选记录。我认为在 sql server 中有更好的方法。
invoice 表有 accountid、ispaid 和 creationdate。帐户表作为帐户的条款。然后我有一个 accountbalance 表,其中有几个字段,如果需要我会更新。
Accountbalance fields
balancedue
pastdue30
pastdue60
pastdue90
pastdueover90
accountid 可以让我从发票到帐户和帐户余额,日期可以告诉我它已经过了多长时间,然后我会根据条款更新 accountbalance 以及它已经逾期多长时间。我知道没有看到它有点难以理解。
这就是我基本上想要做的我只是不知道如何为每条记录做
select * from invoice where ispaid = 0
days = currentdate - invoicecreationdate
switch (days)
case 30
update balance
case 60
update balance
case 90
update balance
if(days > terms)
update balance add servicecharge