首页 新闻 会员 周边 捐助

请问一个数据库数据匹配方面的问题

0
悬赏园豆:20 [已解决问题] 解决于 2013-06-12 22:02

如果:

A表:字段a1值为100,字段a2值为10

B表:字段b1也为100,字段b2值为5

那么B表这条记录就删掉,A表字段a2值就变为5。

问题:

A表:字段a1值为100,字段a2值为10

B表:字段b1也为100,字段b2值为5

        字段b11也为100,字段b22值为6

如果B表出现两条值,怎么样才能实现A表这条数据删除,b22最后数据为1呢?

问题补充:

当其中一个表增加一个值时去比对另一个表,前面字段相同,就用后面字段相减,字段值大的一方保留并更新余值,值小的一方删除。

_dance的主页 _dance | 初学一级 | 园豆:4
提问于:2013-05-24 16:07
< >
分享
最佳答案
0

是不是A表中先做一次减法运算,所得的值(也就是新得到的A表)在和B表中的下一条数据在进行运算?好像有点麻烦!

收获园豆:5
鹰击长空123 | 菜鸟二级 |园豆:320 | 2013-05-25 19:16

过程用代码我已实现了,逻辑基本是用一个表的数据去查另一个表的数据,如果A表增加一条数据与B表N条数据对应,然后a2字段逐个减b2所有数据,当为负或零时停止,再算出最后余值写入A表或B表,但这样貌似容易出现脏数据- -把整个运算事件写到数据库里是不是就不会有脏数据了呢?

_dance | 园豆:4 (初学一级) | 2013-05-27 09:38
其他回答(3)
0

没看懂。哈哈

收获园豆:5
会长 | 园豆:12463 (专家六级) | 2013-05-24 16:18

当其中一个表增加一个值时去比对另一个表,前面字段相同,就用后面字段相减,字段值大的一方保留并更新余值,值小的一方删除。

支持(0) 反对(0) _dance | 园豆:4 (初学一级) | 2013-05-24 16:21
0

你的问题描述的不太清楚呢。

如果,A.Id==B.Id,那么,A.Val>B.Val,则 A.Val=A.Val-B.Val,否则 B.Val=B.Val-A.Val,并删除小值记录,对吧?如果 A.Val==B.Val 呢?

问题:如何实现,A.Id==B.Id 的情况下,如果,A.Val<SUM(B.Val),则 B(MAX).Val=SUM(B.Val)-A.Val,这样?

收获园豆:5
飞扬的尘埃 | 园豆:1318 (小虾三级) | 2013-05-24 17:38
0

在删除的a中数据的时候写个触发器,去修改b表的数据。

收获园豆:5
viola | 园豆:211 (菜鸟二级) | 2013-05-24 18:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册