如何用SQL语句满足这条业务规则!!
有以下这个table:
借书记录(读者编号,书编号,借出时间,应归还时间,实际归还时间,欠费)
业务规则:
规定,对于每一条借书记录,如果
当下的时间( getdate() ) > 应归还时间 ,则
自动修改欠费的数据,
欠费=0.01*(归还时间-当下时间)。如果读者已经
归还了图书,也就是“实际归还时间”不为空,则
“欠费”自
动停止计费。
备注:读者借书的时候,往借书记录中插入“读者编号”“书编号”“借出时间”“应归还时间”。“实际归还时间”和“欠
费”默认值为NULL。还书的时候,就修改实际归还时间。
请问:
如何用SQL语句满足上面的业务规则??
------解决方案--------------------
UPDATE TALBE
SET 实际归还时间 = getdate()
欠费=0.01*(getdate()-应归还时间)
where 读者编号 = @读者编号
and 书编号 = @书编号
and 借出时间 = @借出时间
------解决方案--------------------
update table
set 欠费 = 0.01*(getdate()-应归还时间)
where getdate()>应归还时间 and 实际归还时间 is null
------解决方案--------------------
其实你在访问数据的时候
select 的时候计算出来这些值就可以了
等到归还了 改一下属性就可以了。