insert into up\_xxx (
目标表字段
)
select
字段
from tb\_product\_sku\_info as sku
inner join (
select \*,
concat(\*\*\*) as ENTRY\_KEY,
group\_concat(distinct concat('--',F2,'++')) as F2s
from up\_prd\_pr\_entry
WHERE CLIENT\_ID = :\_client\_id AND DELETE\_FLAG = 100 AND UP\_BATCH = :\_batch AND HAS\_ERR = 0
group by ENTRY\_KEY
) as up
on up.P\_MAT\_ID = sku.P\_MAT\_ID and instr(up.F2s,concat('--',sku.F2,'++')) = 0
where sku.CLIENT\_ID = :\_client\_id and sku.DELETE\_FLAG = 0
ORDER BY ENTRY\_KEY
insert into up\_prd\_pr\_entry (
ID, H\_ID, TARGET\_ENTRY\_NO,ORDER\_NO
)
select
ID,
H\_ID,
(
@rownum:=(
case when @order\_no= t.ORDER\_NO then
(case when @entry\_key = t.ENTRY\_KEY then @rownum else (case when (@entry\_key:= t.ENTRY\_KEY) then @rownum+1 else @rownum+1 end) end)
else
(case when (@entry\_key:= t.ENTRY\_KEY) then 1 else 1 end)
end
)
) as TARGET\_ENTRY\_NO,@order\_no:= t.ORDER\_NO as ORDER\_NO
from (SELECT @rownum:=0, @h\_id:='', @order\_no:= '', @entry\_key:= '') r, (
select
ID, concat(CLIENT\_ID, '--', ORDER\_NO) as H\_ID, ORDER\_NO, concat(ifnull(ORDER\_NO,''),'---',ifnull(P\_MAT\_ID,''),'---',ifnull(CRD,''),'---',ifnull(STORE\_CODE,''),'---',ifnull(OTB\_CODE,''),'---',ifnull(PLAN\_RECEIVE\_DATE,''),'---',ifnull(RECEIVE\_WM\_CODE,'') ) as ENTRY\_KEY
from up\_prd\_pr\_entry
where CLIENT\_ID = :\_client\_id and DELETE\_FLAG = 100 and UP\_BATCH = :\_batch and HAS\_ERR in (0, 100)
order by ORDER\_NO, ENTRY\_KEY desc
) as t
on duplicate key update H\_ID = values(H\_ID), TARGET\_ENTRY\_NO = values(TARGET\_ENTRY\_NO)
本文为wjw原创文章,转载无需和我联系,但请注明来自wjw博客http://wjiawen.cn
最新评论