数据表对比问题
暗石绿 2004-08-28 03:44:31 表 ArrearageList
字段:
mphonecode usrname feesumdeb recvmonth
13008708674 刘五清 10 200404
13008739366 安强 87.55 200402
13109337241 杨秀芳 23.83 200401
13008717797 李志敏 10 200401
到了月底,需要把新的数据跟表 ArrearageList 里的数据进行比较(新数据的数据表结构和ArrearageList一模一样)
新数据表 TempArrearageList
字段:
mphonecode usrname feesumdeb recvmonth
13008708674 刘五清 10 200404
13008739366 安强 165.57 200403
13109337241 杨秀芳 5 200402
13008721231 董泰山 106.33 200405
要求:
-- 新增欠费
1.如果 TempArrearageList 里有 ArrearageList 里没有的数据,就把这个新加的数据添加到 ArrearageList 里。(如现在就是要“判断” 13008721231 董泰山 这一条记录是 ArrearageList 里没有的,insert 这条记录到 ArrearageList 里)
如果新数据里 feesumdeb 值比 旧数据里 feesumdeb 的值大,这条记录也同样属于 新增欠费。
修改旧数据中 feesumdeb 的值为新数据值。(如要把 13008739366 安强 87.55 200402 这条记录改为 13008739366 安强 165.57 200403)
最后把新增数据添加到“新增数据表”NewArrearageList 表(结构也一样)
-- 未交费
2.两个表里 mphonecode usrname feesumdeb 这三个字段都相同(即数据没有改变)的话,保持原 ArrearageList 里的对应记录不动。
-- 部分交费
3.如
ArrearageList 表里
13109337241 杨秀芳 23.83 200401
TempArrearageList 表里
13109337241 杨秀芳 5 200402
因为5 < 23.83 ,所以是部分交费 。
要修改 ArrearageList 表记录为
13109337241 杨秀芳 5 200401
把此数据添加到部分交费表 PaymentDetail
-- 已交费
4. 旧数据中有,新数据中没有,就是已交费。
如 13008717797 李志敏 这条记录
删除这条记录,把这个表添加到 已交费表 Handed
**********************************************************************
不知大家有什么好思路?
我本来想都读取程序里进行循环对比的,但是这样可能程序运行会慢得多。内存占用太大。
最好尽量能使用 SQL 语句实现。
bow