Commit dd05bd3d by lizefeng

优化调拨在途明细的查询算法

parent a05f859c
......@@ -71,77 +71,123 @@ GROUP BY
{
var sql = @"
SELECT
tb5.bailun_sku bailun_sku,
tb5.warehouse_code warehouse_code,
tb5.transfer_order_id transfer_order_id,
tb5.estimated_arrival_time estimated_arrival_time,
tb5.create_time create_time,
( tb5.count - IFNULL( tb4.count, 0 ) ) AS count ,
(case when t_w.hq_type='fba仓' then t_w.bailun_account else t_w.warehouse_name end) as warehouse_name
tb11.bailun_sku bailun_sku,
tb11.warehouse_code warehouse_code,
tb11.transfer_order_id transfer_order_id,
tb5.estimated_arrival_time estimated_arrival_time,
tb11.create_time create_time,
(
tb11.count - IFNULL(tb4.count, 0)
) AS count
FROM
(
SELECT
tb1.bailun_sku,
tb1.warehouse_code,
tb1.transfer_order_id,
tb1.estimated_arrival_time,
tb1.create_time,
sum( tb1.count ) count
FROM
dc_base_transfer_verify tb1
LEFT JOIN dc_base_transfer_complete tb2 ON tb1.deleted = tb2.deleted
AND tb1.bailun_sku = tb2.bailun_sku
AND tb1.warehouse_code = tb2.warehouse_code
AND tb1.transfer_order_id = tb2.transfer_order_id
WHERE
tb2.bailun_sku IS NULL
AND tb1.bailun_sku = @bailun_sku
AND tb1.warehouse_code = @warehouse_code
AND tb1.deleted = 0
GROUP BY
bailun_sku,
warehouse_code,
transfer_order_id
) tb5
(
SELECT
tb1.bailun_sku,
tb1.warehouse_code,
tb1.transfer_order_id,
tb1.create_time,
sum(tb1.count) count
FROM
dc_base_transfer_bale tb1
LEFT JOIN dc_base_transfer_complete tb2 ON tb1.transfer_order_id = tb2.transfer_order_id
WHERE
tb2.bailun_sku IS NULL
AND tb1.bailun_sku = @bailun_sku
AND tb1.warehouse_code = @warehouse_code
AND tb1.deleted = 0
GROUP BY
bailun_sku,
warehouse_code,
transfer_order_id
) tb11
LEFT JOIN (
SELECT
tb1.bailun_sku,
tb1.warehouse_code,
tb1.transfer_order_id,
tb1.estimated_arrival_time,
tb1.create_time,
sum(tb1.count) count
FROM
dc_base_transfer_verify tb1
LEFT JOIN dc_base_transfer_complete tb2 ON tb1.transfer_order_id = tb2.transfer_order_id
WHERE
tb2.bailun_sku IS NULL
AND tb1.bailun_sku = @bailun_sku
AND tb1.warehouse_code = @warehouse_code
AND tb1.deleted = 0
GROUP BY
bailun_sku,
warehouse_code,
transfer_order_id
) tb5 ON tb5.bailun_sku = tb11.bailun_sku
AND tb5.warehouse_code = tb11.warehouse_code
AND tb5.transfer_order_id = tb11.transfer_order_id
LEFT JOIN (
SELECT
bailun_sku,
warehouse_code,
transfer_order_id,
sum( count ) count
FROM
(
SELECT
tb1.bailun_sku,
tb1.warehouse_code,
max( tb1.count ) count,
tb1.transfer_order_id
FROM
dc_base_transfer_inbound tb1
LEFT JOIN dc_base_transfer_complete tb2 ON tb2.deleted = 0
AND tb1.bailun_sku = tb2.bailun_sku
AND tb1.warehouse_code = tb2.warehouse_code
AND tb1.transfer_order_id = tb2.transfer_order_id
WHERE
tb2.bailun_sku IS NULL
AND tb1.deleted = 0
GROUP BY
bailun_sku,
warehouse_code,
transfer_order_id
) tb3
GROUP BY
bailun_sku,
warehouse_code,
transfer_order_id
) tb4 ON tb5.bailun_sku = tb4.bailun_sku
AND tb5.warehouse_code = tb4.warehouse_code
AND tb5.transfer_order_id = tb4.transfer_order_id
left join dc_base_warehouse as t_w on tb5.warehouse_code = t_w.warehouse_code
SELECT
bailun_sku,
warehouse_code,
transfer_order_id,
sum(count) count
FROM
(
SELECT
t1.bailun_sku,
t1.warehouse_code,
t2.count,
t1.transfer_order_id
FROM
(
SELECT
max(create_time) AS create_time,
bailun_sku,
warehouse_code,
transfer_order_id
FROM
dc_base_transfer_inbound
WHERE
deleted = 0
AND bailun_sku = @bailun_sku
AND warehouse_code = @warehouse_code
GROUP BY
bailun_sku,
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.transfer_order_id = t2.transfer_order_id
AND t1.create_time = t2.create_time
LEFT JOIN dc_base_transfer_complete tb2 ON t1.transfer_order_id = tb2.transfer_order_id
WHERE
tb2.bailun_sku IS NULL
) tb3
GROUP BY
bailun_sku,
warehouse_code,
transfer_order_id
) tb4 ON tb5.bailun_sku = tb4.bailun_sku
AND tb5.warehouse_code = tb4.warehouse_code
AND tb5.transfer_order_id = tb4.transfer_order_id
WHERE
( tb5.count - IFNULL( tb4.count, 0 ) ) > 0
(
tb11.count - IFNULL(tb4.count, 0)
) > 0
UNION ALL
SELECT
bailun_sku,
warehouse_code,
transfer_plan_order_id,
NULL,
update_time,
count
FROM
dc_base_transfer_plan
WHERE
STATUS = 1
AND deleted = 0
AND bailun_sku = @bailun_sku
AND warehouse_code = @warehouse_code ;
";
DynamicParameters parameters = new DynamicParameters();
parameters.Add("bailun_sku", sku);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment