mysql语句收藏

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)

王加文博客
请先登录后发表评论
  • latest comments
  • 总共0条评论