select bailun_sku, warehouse_code, source_warehouse_code, sum(count) as count from
(SELECT
t1.bailun_sku,
t1.warehouse_code,
t1.source_warehouse_code,
t1.transfer_order_id,
t1.create_time,
sum(t1.count) as count
FROM
dc_base_transfer_complete t1
LEFT JOIN dc_base_transfer_inbound tb2 ON t1.transfer_order_id = tb2.transfer_order_id and t1.bailun_sku = tb2.bailun_sku and t1.warehouse_code = tb2.warehouse_code and t1.source_warehouse_code = tb2.source_warehouse_code and tb2.deleted = 0 and tb2.create_time < #{localDate} and tb2.create_time >= date_sub(#{localDate}, INTERVAL 30 day)
WHERE
tb2.bailun_sku IS NULL
AND t1.deleted = 0
AND t1.create_time >= date_sub(#{localDate}, INTERVAL 30 day)
AND t1.create_time < #{localDate}
GROUP BY
t1.bailun_sku,
t1.warehouse_code,
t1.source_warehouse_code,
t1.transfer_order_id
UNION ALL
SELECT
t1.bailun_sku,
t1.warehouse_code,
t1.source_warehouse_code,
t1.transfer_order_id,
t1.create_time,
t2.count
FROM
(
SELECT
max(create_time) AS create_time,
bailun_sku,
warehouse_code,
source_warehouse_code,
transfer_order_id
FROM
dc_base_transfer_inbound
WHERE
deleted = 0
and create_time >= date_sub(#{localDate}, INTERVAL 30 day)
and create_time < #{localDate}
GROUP BY
bailun_sku,
warehouse_code,
source_warehouse_code,
transfer_order_id) t1
INNER JOIN dc_base_transfer_inbound t2 ON t1.bailun_sku = t2.bailun_sku
AND t1.warehouse_code = t2.warehouse_code
AND t1.source_warehouse_code = t2.source_warehouse_code
AND t1.transfer_order_id = t2.transfer_order_id
AND t1.create_time = t2.create_time) t
group by bailun_sku, source_warehouse_code, warehouse_code
</select>
<updateid="updateSkuUnitPrice">
<updateid="updateSkuUnitPrice">
update dc_daily_transit_from t1, dc_base_sku t2 set t1.unit_price = t2.unit_price WHERE t1.record_time = #{localDate} and t1.bailun_sku=t2.bailun_sku
update dc_daily_transit_from t1, dc_base_sku t2 set t1.unit_price = t2.unit_price WHERE t1.record_time = #{localDate} and t1.bailun_sku=t2.bailun_sku
</update>
</update>
<updateid="updateWarehouseName">
update dc_daily_transit_from t1, dc_base_warehouse t2 set t1.warehouse_name = t2.warehouse_name where t1.warehouse_code = t2.warehouse_code and t1.record_time = #{localDate}
</update>
<updateid="updateSourceWarehouseName">
update dc_daily_transit_from t1, dc_base_warehouse t2 set t1.source_warehouse_name = t2.warehouse_name where t1.source_warehouse_code = t2.warehouse_code and t1.record_time = #{localDate}