select t.*,
m.member_code as memberCode,
m.member_name as memberName,
v.VERTEX_NAME as vertexName,
c.TEAM_NAME as teamName
from cu_member_trade t
left join cu_member m
on t.pk_member = m.pk_id
left join cu_member_team c
ON c.pk_id = m.pk_team_code
and c.del_flag = 0
left join bd_vertex v
on v.pk_id = m.PK_VERTEX
and v.del_flag = 0
t.del_flag='0'
and t.pk_id in
#{item}
t.del_flag = 0
and m.member_name like #{memberName} || '%'
and m.member_code like #{memberCode} || '%'
and t.TRADE_AMOUNT = #{tradeAmount}
and m.REMARKS like #{remarks} || '%'
and t.PK_ACCOUNT = #{pkAccount}
and t.TRADE_TYPE = #{tradeType}
and t.SOURCE_CODE = #{sourceCode}
and t.pk_country = #{pkCountry}
and t.TRADE_CLASSIFY = #{tradeClassify}
and t.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
and t.CREATION_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
and m.PK_VERTEX=#{vertexId}
and m.pk_team_code=#{teamId}
insert into CU_MEMBER_TRADE (PK_ID, PK_MEMBER, TRADE_CODE, PK_ACCOUNT, TRADE_TYPE,
TRADE_CLASSIFY, PK_RATE, TRADE_AMOUNT, TRADE_BALANCE,TRADE_BEFORE_BALANCE,
SOURCE_CODE, TRADE_STATUE, REMARKS, PK_COUNTRY, CREATION_TIME, PK_CREATOR)
SELECT cu_member_trade_seq.nextval,t.* FROM
(
SELECT #{item.pkMember},#{item.tradeCode},#{item.pkAccount},#{item.tradeType}
,#{item.tradeClassify},#{item.pkRate},#{item.tradeAmount},#{item.tradeBalance},#{item.tradeBeforeBalance}
,#{item.sourceCode, jdbcType=VARCHAR},#{item.tradeStatue},
#{item.remarks},
null,
#{item.pkCountry},sysdate,#{item.pkCreator}
FROM dual
) t
update cu_member_trade t set t.source_code = #{sourceCode},
t.pk_modified = #{pkModified},
t.modified_time = sysdate
where t.trade_code in
#{item}
merge into cu_member_trade a
using (
select m.pk_id, m.pk_member, m.trade_code, m.pk_account, m.trade_type,m.trade_classify, m.pk_rate, m.trade_amount,
(case when ba.field_value=4 then ca.account4 + m.trade_amount when ba.field_value=5 then ca.account5 + m.trade_amount
when ba.field_value=8 then ca.account8 + m.trade_amount when ba.field_value=9 then ca.account9 + m.trade_amount
else ca.account10 + m.trade_amount end) trade_balance,
(case when ba.field_value=4 then ca.account4 when ba.field_value=5 then ca.account5 when ba.field_value=8 then ca.account8
when ba.field_value=9 then ca.account9 else ca.account10 end) trade_before_balance,
m.source_code, m.trade_statue, m.remarks, m.pk_country, m.creation_time, m.pk_creator from(
select #{item.pkId} pk_id,#{item.tradeCode} trade_code, #{item.tradeClassify} trade_classify,
#{item.pkMember} pk_member,#{item.pkAccount} pk_account,#{item.pkRate} pk_rate,#{item.tradeAmount} trade_amount,
#{item.sourceCode} source_code,#{item.tradeStatue} trade_statue,#{item.remarks} remarks,
#{item.tradeType} trade_type,#{item.pkCountry} pk_country,#{item.pkCreator} pk_creator,
#{item.creationTime} creation_time from dual
) m
inner join cu_member_account ca
on m.pk_member = ca.pk_member
inner join bd_account ba
on ba.pk_id = m.pk_account
) b
on (a.pk_id = b.pk_id)
when not matched then
insert (pk_id, pk_member, trade_code, pk_account, trade_type,
trade_classify, pk_rate, trade_amount, trade_balance,trade_before_balance,
source_code, trade_statue, remarks, pk_country, creation_time, pk_creator)
values(b.pk_id,b.pk_member,b.trade_code,b.pk_account,b.trade_type,
b.trade_classify,b.pk_rate,b.trade_amount,b.trade_balance,b.trade_before_balance,
b.source_code,b.trade_statue,b.remarks,b.pk_country,b.creation_time,b.pk_creator)