今天遇到一个问题,要求在一张客户表和一张卡更新表之间实现关联替换。
需求是这样:有一些客户有一天换几张卡的情况,每次换卡卡号都会换新,旧卡号不会再用。如果一个客户一天换四次卡,会出现五张卡号关联一个客户的情况。
如果第二天抽取卡更新表的信息和客户信息表关联。其实就一个卡号字段要变,但是四次更新卡号的记录都要插入数据库中存储,问题是,怎么从卡一到卡五依次关联到这一个客户号,实现批量插入?求助!
目前的问题是,要关联的客户账户表中的客户号无法和卡更新表相关联,因卡更新表中无客户号字段。
这是客户账户信息表中的字段
我想要跟act_cd字段相关联
这种情况如何将两张表关联起来呢?然后将新卡号关联到客户信息中,批量插入?我现在想到的sql语句是
查询出来旧卡号在新卡号列的对应主体信息,此为一个客户一天内一次换卡后又继续换卡,导致卡号多次变更的情况
insert into ori_pact
(
ctif_id,
act_cd,
act_tp,
act_typ,
act_limit,
address,
bind_mob,
contact,
cst_sex,
ctif_tp,
id_deadline,
id_no,
id_type,
is_self_acc,
nation,
occupation,
sales_flag,
sales_name
)
SELECT
lp.ctif_id,
CASE
WHEN lp.act_cd=uci.oldcard THEN uci.newcard
END act_cd,
-- lp.act_cd,
lp.act_tp,
lp.act_typ,
lp.act_limit,
lp.address,
lp.bind_mob,
lp.contact,
lp.cst_sex,
lp.ctif_tp,
lp.id_deadline,
lp.id_no,
lp.id_type,
lp.is_self_acc,
lp.nation,
lp.occupation,
lp.sales_flag ,
lp.sales_name
FROM
t_stan_pact lp,update_card_info uci
WHERE
lp.act_cd=uci.newcard AND uci.oldcard
IN
(SELECT
p1.newcard
FROM
update_card_info p1,update_card_info p2
WHERE
p1.oldcard=p2.newcard
)
但想了下,多次换卡情况还是解决不了