首页 新闻 会员 周边

求高手:C#中合同匹配

0
悬赏园豆:80 [已关闭问题] 关闭于 2016-05-03 22:09

逾期表A                                        催收人员等级表B
合同ID 门店ID 产品ID 逾期等级ID       人员ID 门店ID 催收产品ID 逾期等级ID 
012       001      01     1                    101       001     01              1
224       001      01     2                    302       001     01              1
031       001      01     1                    503       002     02              2
094       002      01     2                    104       003     02              3
095       003      02     3                    705       004     03              4
066       004      03     4                    906       001     01              2
077       001      01     1                    407       001     02              3

                                                      208       002     01              2

                                                      909       001     01              2

 

表C
合同ID    人员ID


C#中请问怎么把表A 的合同到表B匹配然后插入表C中,
注意:表A中有相同门店,相同产品,相同逾期等级。
不要考虑表A,表B的数量,直接分配就好,表A总的逾期合同,在表B中都有相对应的人
表B中也有多个负责催收相同门店,相同产品,相同逾期等级的人,
同一个人可以负责多个,产品,多个等级
请将合同平均匹配给负责相同(门店,产品,逾期等级的人),不能平均分配的随机分配。
比如:表A有10个相同的合同,表B中满足条件的催收人只有3个,
那么就是先平均分配在把余下的1个随机分配,保证不重复分配给这个人员
请将合同全部分完

ouyangdu的主页 ouyangdu | 初学一级 | 园豆:6
提问于:2015-09-06 21:11
< >
分享
所有回答(1)
0

我觉得和你前面那个问题的差别不大  合同ID人员ID有没有规律应该没有影响

难道说我理解的不对?建议你贴个你想要得到的数据结果

小白菜T | 园豆:564 (小虾三级) | 2015-09-07 09:28

因为这个操作要在C#后台,所以得重新征求一下,数据结果就是表C

支持(0) 反对(0) ouyangdu | 园豆:6 (初学一级) | 2015-09-07 10:23

C#后台你能搞定吗

支持(0) 反对(0) ouyangdu | 园豆:6 (初学一级) | 2015-09-07 12:31

@ouyangdu: 在C#代码里可以把两个表里的数据取出来循环逻辑判断来处理,也可以把前面那个sql拼一拼一下子执行;可能也能用linq来做……

支持(0) 反对(0) 小白菜T | 园豆:564 (小虾三级) | 2015-09-07 14:04

@小白菜T: C#怎么写呢?具体一点啊,这个问题困扰我几天了

支持(0) 反对(0) ouyangdu | 园豆:6 (初学一级) | 2015-09-07 14:39

@ouyangdu: 在C#代码里处理的话,把数据取出来然后循环遍历来处理,我不太明白难点在哪里啊。。。

支持(0) 反对(0) 小白菜T | 园豆:564 (小虾三级) | 2015-09-07 15:53

@小白菜T: 因为他有多个合同下面的门店,产品,等级。而且表B中也有多个负责催收相同门店,相同产品,相同逾期等级的人。所以还要分组。具体实施起来对我来说有点困难,希望提供代码

支持(0) 反对(0) ouyangdu | 园豆:6 (初学一级) | 2015-09-07 17:52

@ouyangdu: 你所说的这三个表应该是在数据库里存在的表没错吧?如果是的话,干脆把之前那个SQL拼起来,然后调用执行得了。。

string strSql = @"SELECT ROW_NUMBER() OVER(ORDER BY [合同ID]) rowid,* INTO #temp1 FROM A

……

INSERT INTO C ([合同ID], [人员ID] ) SELECT * FROM #result";

然后按照你平时执行sql的习惯执行就好。。。

支持(0) 反对(0) 小白菜T | 园豆:564 (小虾三级) | 2015-09-08 17:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册