重现步骤
反馈人:袁慧斌
数据库:zhcxkj-center-warehouse
查询时间:67.395
扫描行数:951.857
发送行数:162
指纹SQL: SELECT main . WarehouseID , K . stage Stage , main . MoveType , main . NumType , MAX ( CASE WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . TaskNum , ? ) WHEN stage = '?' THEN ? WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . TaskNum , ? ) END ) NotComplelete , MAX ( CASE WHEN stage = '?' THEN ? WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . TaskNum , ? ) WHEN stage
真实SQL:SELECT main.WarehouseID ,K.stage Stage ,main.MoveType ,main.NumType ,MAX( CASE WHEN stage='移库待生成' AND main.NumType='产品数量' THEN IFNULL(A.ProductNumber,0) WHEN stage='移库待生成' AND main.NumType='SKU数' THEN IFNULL(A.SKUNum,0) WHEN stage='移库待生成' AND main.NumType='任务数' THEN IFNULL(A.TaskNum,0) WHEN stage='移库生成' THEN 0 WHEN stage='移库打印' AND main.NumType='产品数量' THEN IFNULL(D.ProductNumber,0) WHEN stage='移库打印' AND main.NumType='SKU数' THEN IFNULL(D.SKUNum,0) WHEN stage='移库打印' AND main.NumType='任务数' THEN IFNULL(D.TaskNum,0) WHEN stage='移库拣货' AND main.NumType='产品数量' THEN IFNULL(F.ProductNumber,0) WHEN stage='移库拣货' AND main.NumType='SKU数' THEN IFNULL(F.SKUNum,0) WHEN stage='移库拣货' AND main.NumType='任务数' THEN IFNULL(F.TaskNum,0) WHEN stage='移库分拣' AND main.NumType='产品数量' THEN IFNULL(H.ProductNumber,0) WHEN stage='移库分拣' AND main.NumType='SKU数' THEN IFNULL(H.SKUNum,0) WHEN stage='移库分拣' AND main.NumType='任务数' THEN IFNULL(H.TaskNum,0) WHEN stage='移库入库' AND main.NumType='产品数量' THEN IFNULL(J.ProductNumber,0) WHEN stage='移库入库' AND main.NumType='SKU数' THEN IFNULL(J.SKUNum,0) WHEN stage='移库入库' AND main.NumType='任务数' THEN IFNULL(J.TaskNum,0) END) NotComplelete ,MAX( CASE WHEN stage='移库待生成' THEN 0 WHEN stage='移库生成' AND main.NumType='产品数量' THEN IFNULL(B.ProductNumber,0) WHEN stage='移库生成' AND main.NumType='SKU数' THEN IFNULL(B.SKUNum,0) WHEN stage='移库生成' AND main.NumType='任务数' THEN IFNULL(B.TaskNum,0) WHEN stage='移库打印' AND main.NumType='产品数量' THEN IFNULL(C.ProductNumber,0) WHEN stage='移库打印' AND main.NumType='SKU数' THEN IFNULL(C.SKUNum,0) WHEN stage='移库打印' AND main.NumType='任务数' THEN IFNULL(C.TaskNum,0) WHEN stage='移库拣货' AND main.NumType='产品数量' THEN IFNULL(E.ProductNumber,0) WHEN stage='移库拣货' AND main.NumType='SKU数' THEN IFNULL(E.SKUNum,0) WHEN stage='移库拣货' AND main.NumType='任务数' THEN IFNULL(E.TaskNum,0) WHEN stage='移库分拣' AND main.NumType='产品数量' THEN IFNULL(G.ProductNumber,0) WHEN stage='移库分拣' AND main.NumType='SKU数' THEN IFNULL(G.SKUNum,0) WHEN stage='移库分拣' AND main.NumType='任务数' THEN IFNULL(G.TaskNum,0) WHEN stage='移库入库' AND main.NumType='产品数量' THEN IFNULL(I.ProductNumber,0) WHEN stage='移库入库' AND main.NumType='SKU数' THEN IFNULL(I.SKUNum,0) WHEN stage='移库入库' AND main.NumType='任务数' THEN IFNULL(I.TaskNum,0) END) Compleleted ,CURRENT_TIMESTAMP ETLTime FROM ( SELECT MoveType,WarehouseID,NumType FROM(SELECT '存储移订单' MoveType UNION ALL SELECT '订单移存储' MoveType UNION ALL SELECT '订单移订单' MoveType) A CROSS JOIN (SELECT warehouse_id WarehouseID FROM t_stk_order_info WHERE order_state IN (0,1) AND customer_id=1 AND order_status=0 AND is_stock_order = 1 AND warehouse_id IS NOT NULL UNION SELECT warehouse_id WarehouseID FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4) AND warehouse_id IS NOT NULL UNION SELECT ware_house_id WarehouseID FROM t_stk_moving_putin_task WHERE customer_id=1 AND shelf_type IN (2,3,5,6) AND ware_house_id IS NOT NULL) B CROSS JOIN ( SELECT '产品数量' NumType UNION ALL SELECT 'SKU数' NumType UNION ALL SELECT '任务数' NumType ) C ) main LEFT JOIN ( -- 移库待生成(待完成) SELECT warehouse_id WarehouseID,'订单移存储' MoveType,COUNT(DISTINCT a.order_code) TaskNum,COUNT(DISTINCT CONCAT(a.order_code,b.SKU)) SKUNum,SUM(b.lock_num -IFNULL(b.pending_move_number,0)-b.put_in_num-IFNULL(f.sumNumber,0)+IFNULL(g.sumShelfNumber,0)) ProductNumber FROM (SELECT order_code,order_source_id,transport_id,warehouse_id FROM t_stk_order_info WHERE order_state IN (0,1) AND customer_id=1 AND order_status=0 AND is_stock_order = 1) a JOIN (SELECT order_code,id,pending_move_number,lock_num,put_in_num,SKU FROM t_stk_order_list WHERE customer_id=1 AND purchase_type < 2 AND lock_num > 0 AND product_num + IFNULL(product_num_update,0)>0) b ON a.order_code = b.order_code JOIN (SELECT id FROM rb_order_source WHERE customer_id=1) d ON a.order_source_id = d.id LEFT JOIN ( SELECT a.order_code,b.order_list_id, SUM(case when a.task_status<4 then b.sku_number else 0 end) as sumNumber FROM (SELECT order_code,task_status,id FROM t_stk_moving_task WHERE customer_id=1 and task_type in(1,2)) a JOIN (SELECT sku_number,order_list_id,moving_task_id FROM t_stk_moving_task_detail WHERE customer_id=1) b on b.moving_task_id=a.id GROUP BY a.order_code,b.order_list_id )f on f.order_code=a.order_code and f.order_list_id=b.id LEFT JOIN ( SELECT b.order_list_id,SUM(IFNULL(b.moved_number,0)) sumShelfNumber FROM (SELECT id FROM t_stk_moving_task where task_type=3 AND customer_id=1) a join (SELECT moving_task_id,order_list_id,moved_number FROM t_stk_moving_task_detail WHERE customer_id=1) b on a.id=b.moving_task_id GROUP by b.order_list_id )g on g.order_list_id=b.id LEFT JOIN (SELECT order_code FROM t_stk_order_info_beikuexpand WHERE customer_id=1) e ON a.order_code = e.order_code Left join (SELECT Id FROM t_stk_transport WHERE customer_id=1) ts on a.transport_id=ts.Id left join ( SELECT order_code,COUNT(id) waitMovingOrderCount from rb_waitingmoving_orderdetail WHERE IFNULL(waiting_move_state,0)=0 GROUP BY order_code )k ON k.order_code=a.order_code WHERE IFNULL(f.sumNumber,0)>=0 AND IFNULL(k.waitMovingOrderCount,0)=0 AND IFNULL(b.pending_move_number,0)>=IFNULL(g.sumShelfNumber,0) AND b.lock_num -IFNULL(b.pending_move_number,0)-IFNULL(f.sumNumber,0)-b.put_in_num+IFNULL(g.sumShelfNumber,0) > 0 GROUP BY warehouse_id ) A ON main.MoveType=A.MoveType AND main.WareHouseID=A.WareHouseID LEFT JOIN ( -- 移库生成 (已完成) SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(CASE WHEN IFNULL(b.order_code,'')='' THEN origin_order_code ELSE b.order_code END,b.SKU)) SKUNum,SUM(sku_number) ProductNumber FROM (SELECT wareHouse_id,id,origin_order_code,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType FROM t_stk_moving_task WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1 AND task_type IN (1,2,3,4)) a JOIN (SELECT moving_task_id,sku_number,sku,order_code,task_no FROM t_stk_moving_task_detail WHERE customer_id=1) b ON b.moving_task_id=a.id GROUP BY wareHouse_id,MoveType ) B ON main.MoveType=B.MoveType AND main.WareHouseID=B.WareHouseID LEFT JOIN ( -- 移库打印 (已完成) SELECT a.WareHouseID,a.MoveType,TaskNum,SKUNum,ProductNumber FROM ( SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(picking_batch_task_no,SKU)) SKUNum FROM (SELECT picking_batch_no FROM t_stk_moving_picking_batch WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1) a JOIN (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE customer_id=1) b ON a.picking_batch_no=b.picking_batch_no JOIN (SELECT id,picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON a.picking_batch_no=c.picking_batch_no JOIN (SELECT moving_task_id,sku_number,sku,task_no FROM t_stk_moving_task_detail WHERE customer_id=1) d ON d.moving_task_id=c.id GROUP BY wareHouse_id,MoveType ) A JOIN ( SELECT wareHouse_id WareHouseID,MoveType,SUM(product_number) ProductNumber FROM (SELECT picking_batch_no FROM t_stk_moving_picking_batch WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1) a JOIN (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE customer_id=1) b ON a.picking_batch_no=b.picking_batch_no JOIN (SELECT DISTINCT picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON a.picking_batch_no=c.picking_batch_no GROUP BY wareHouse_id,MoveType ) B ON A.WareHouseID=B.WareHouseID AND A.MoveType=B.MoveType) C ON main.MoveType=C.MoveType AND main.WareHouseID=C.WareHouseID LEFT JOIN ( -- 移库打印 (待完成) SELECT warehouse_id WarehouseID,MoveType, COUNT(DISTINCT b.task_no) as TaskNum, COUNT(DISTINCT c.sku) SKUNum, SUM(c.sku_number) ProductNumber FROM (SELECT id,warehouse_id,task_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType FROM t_stk_moving_task WHERE task_status=0 AND task_type IN (1,2,3,4) AND customer_id=1 AND DATE(task_create_time) BETWEEN DATE_SUB(CURRENT_DATE,INTERVAL 14 DAY) AND CURRENT_DATE) b join (SELECT moving_task_id,sku,sku_number FROM t_stk_moving_task_detail WHERE customer_id=1 ) c on b.id=c.moving_task_id GROUP BY warehouse_id,MoveType ) D ON main.MoveType=D.MoveType AND main.WareHouseID=D.WareHouseID LEFT JOIN ( -- 移库拣货(已完成) SELECT a.WareHouseID,a.MoveType,TaskNum,SKUNum,ProductNumber FROM (SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(b.picking_batch_task_no,d.SKU)) SKUNum FROM (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE picking_status=2 AND DATE(picking_time)=CURRENT_DATE AND customer_id=1 ) b JOIN (SELECT id,origin_order_code,picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON b.picking_batch_no=c.picking_batch_no JOIN (SELECT moving_task_id,sku_number,sku,order_code,task_no FROM t_stk_moving_task_detail W...;
##袁慧斌,人工修改过##
AISQL修改建议:碎片化SQL 补全 缺失的索引
explain表:
额外建议:
索引建议:

历史记录  
  1. 2025-08-05 15:14:02, 由 陈莉珍 创建。
  2. 2025-08-05 15:15:34, 由 程伟 指派给 余效檀。
    修改了 指派给,旧值为 "chengwei",新值为 "yuxiaotan"。
  3. 2025-08-06 09:19:31, 由 余效檀 确认Bug。
    修改了 Bug类型 ,旧值为 "",新值为 "code"。
    修改了 是否确认,旧值为 "0",新值为 "1"。
    将避开检测的注释加上
  4. 2025-08-06 09:19:56, 由 余效檀 解决,方案为 程序BUG 。
    修改了 解决方案,旧值为 "",新值为 "code"。
    修改了 解决版本,旧值为 "",新值为 "trunk"。
    修改了 解决日期,旧值为 "",新值为 "2025-08-06 09:19:33"。
    修改了 指派给 ,旧值为 "yuxiaotan",新值为 "chenlizhen"。
    修改了 Bug状态 ,旧值为 "active",新值为 "resolved"。
    修改了 解决者 ,旧值为 "",新值为 "yuxiaotan"。

    将避开检测的注释加上

  5. 2025-08-06 20:19:58, 由 陈莉珍 编辑。
    修改了 所属模块 ,旧值为 "0",新值为 "1934"。
    修改了 业务部门 ,旧值为 "0",新值为 "2"。
    修改了 开发责任人,旧值为 "",新值为 "yuxiaotan"。
    修改了 测试责任人,旧值为 "",新值为 "yuxiaotan"。
    修改了 解决时效 ,旧值为 "0",新值为 "18.09"。
    修改了 重现步骤 ,区别为:
    001- 反馈人:袁慧斌
    001+ 反馈人:袁慧斌 数据库:zhcxkj-center-warehouse 查询时间:67.395 扫描行数:951.857 发送行数:162 指纹SQL: SELECT main . WarehouseID , K . stage Stage , main . MoveType , main . NumType , MAX ( CASE WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . TaskNum , ? ) WHEN stage = '?' THEN ? WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . TaskNum , ? ) END ) NotComplelete , MAX ( CASE WHEN stage = '?' THEN ? WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . TaskNum , ? ) WHEN stage 真实SQL:SELECT main.WarehouseID ,K.stage Stage ,main.MoveType ,main.NumType ,MAX( CASE WHEN stage='移库待生成' AND main.NumType='产品数量' THEN IFNULL(A.ProductNumber,0) WHEN stage='移库待生成' AND main.NumType='SKU数' THEN IFNULL(A.SKUNum,0) WHEN stage='移库待生成' AND main.NumType='任务数' THEN IFNULL(A.TaskNum,0) WHEN stage='移库生成' THEN 0 WHEN stage='移库打印' AND main.NumType='产品数量' THEN IFNULL(D.ProductNumber,0) WHEN stage='移库打印' AND main.NumType='SKU数' THEN IFNULL(D.SKUNum,0) WHEN stage='移库打印' AND main.NumType='任务数' THEN IFNULL(D.TaskNum,0) WHEN stage='移库拣货' AND main.NumType='产品数量' THEN IFNULL(F.ProductNumber,0) WHEN stage='移库拣货' AND main.NumType='SKU数' THEN IFNULL(F.SKUNum,0) WHEN stage='移库拣货' AND main.NumType='任务数' THEN IFNULL(F.TaskNum,0) WHEN stage='移库分拣' AND main.NumType='产品数量' THEN IFNULL(H.ProductNumber,0) WHEN stage='移库分拣' AND main.NumType='SKU数' THEN IFNULL(H.SKUNum,0) WHEN stage='移库分拣' AND main.NumType='任务数' THEN IFNULL(H.TaskNum,0) WHEN stage='移库入库' AND main.NumType='产品数量' THEN IFNULL(J.ProductNumber,0) WHEN stage='移库入库' AND main.NumType='SKU数' THEN IFNULL(J.SKUNum,0) WHEN stage='移库入库' AND main.NumType='任务数' THEN IFNULL(J.TaskNum,0) END) NotComplelete ,MAX( CASE WHEN stage='移库待生成' THEN 0 WHEN stage='移库生成' AND main.NumType='产品数量' THEN IFNULL(B.ProductNumber,0) WHEN stage='移库生成' AND main.NumType='SKU数' THEN IFNULL(B.SKUNum,0) WHEN stage='移库生成' AND main.NumType='任务数' THEN IFNULL(B.TaskNum,0) WHEN stage='移库打印' AND main.NumType='产品数量' THEN IFNULL(C.ProductNumber,0) WHEN stage='移库打印' AND main.NumType='SKU数' THEN IFNULL(C.SKUNum,0) WHEN stage='移库打印' AND main.NumType='任务数' THEN IFNULL(C.TaskNum,0) WHEN stage='移库拣货' AND main.NumType='产品数量' THEN IFNULL(E.ProductNumber,0) WHEN stage='移库拣货' AND main.NumType='SKU数' THEN IFNULL(E.SKUNum,0) WHEN stage='移库拣货' AND main.NumType='任务数' THEN IFNULL(E.TaskNum,0) WHEN stage='移库分拣' AND main.NumType='产品数量' THEN IFNULL(G.ProductNumber,0) WHEN stage='移库分拣' AND main.NumType='SKU数' THEN IFNULL(G.SKUNum,0) WHEN stage='移库分拣' AND main.NumType='任务数' THEN IFNULL(G.TaskNum,0) WHEN stage='移库入库' AND main.NumType='产品数量' THEN IFNULL(I.ProductNumber,0) WHEN stage='移库入库' AND main.NumType='SKU数' THEN IFNULL(I.SKUNum,0) WHEN stage='移库入库' AND main.NumType='任务数' THEN IFNULL(I.TaskNum,0) END) Compleleted ,CURRENT_TIMESTAMP ETLTime FROM ( SELECT MoveType,WarehouseID,NumType FROM(SELECT '存储移订单' MoveType UNION ALL SELECT '订单移存储' MoveType UNION ALL SELECT '订单移订单' MoveType) A CROSS JOIN (SELECT warehouse_id WarehouseID FROM t_stk_order_info WHERE order_state IN (0,1) AND customer_id=1 AND order_status=0 AND is_stock_order = 1 AND warehouse_id IS NOT NULL UNION SELECT warehouse_id WarehouseID FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4) AND warehouse_id IS NOT NULL UNION SELECT ware_house_id WarehouseID FROM t_stk_moving_putin_task WHERE customer_id=1 AND shelf_type IN (2,3,5,6) AND ware_house_id IS NOT NULL) B CROSS JOIN ( SELECT '产品数量' NumType UNION ALL SELECT 'SKU数' NumType UNION ALL SELECT '任务数' NumType ) C ) main LEFT JOIN ( -- 移库待生成(待完成) SELECT warehouse_id WarehouseID,'订单移存储' MoveType,COUNT(DISTINCT a.order_code) TaskNum,COUNT(DISTINCT CONCAT(a.order_code,b.SKU)) SKUNum,SUM(b.lock_num -IFNULL(b.pending_move_number,0)-b.put_in_num-IFNULL(f.sumNumber,0)+IFNULL(g.sumShelfNumber,0)) ProductNumber FROM (SELECT order_code,order_source_id,transport_id,warehouse_id FROM t_stk_order_info WHERE order_state IN (0,1) AND customer_id=1 AND order_status=0 AND is_stock_order = 1) a JOIN (SELECT order_code,id,pending_move_number,lock_num,put_in_num,SKU FROM t_stk_order_list WHERE customer_id=1 AND purchase_type &lt; 2 AND lock_num &gt; 0 AND product_num + IFNULL(product_num_update,0)&gt;0) b ON a.order_code = b.order_code JOIN (SELECT id FROM rb_order_source WHERE customer_id=1) d ON a.order_source_id = d.id LEFT JOIN ( SELECT a.order_code,b.order_list_id, SUM(case when a.task_status&lt;4 then b.sku_number else 0 end) as sumNumber FROM (SELECT order_code,task_status,id FROM t_stk_moving_task WHERE customer_id=1 and task_type in(1,2)) a JOIN (SELECT sku_number,order_list_id,moving_task_id FROM t_stk_moving_task_detail WHERE customer_id=1) b on b.moving_task_id=a.id GROUP BY a.order_code,b.order_list_id )f on f.order_code=a.order_code and f.order_list_id=b.id LEFT JOIN ( SELECT b.order_list_id,SUM(IFNULL(b.moved_number,0)) sumShelfNumber FROM (SELECT id FROM t_stk_moving_task where task_type=3 AND customer_id=1) a join (SELECT moving_task_id,order_list_id,moved_number FROM t_stk_moving_task_detail WHERE customer_id=1) b on a.id=b.moving_task_id GROUP by b.order_list_id )g on g.order_list_id=b.id LEFT JOIN (SELECT order_code FROM t_stk_order_info_beikuexpand WHERE customer_id=1) e ON a.order_code = e.order_code Left join (SELECT Id FROM t_stk_transport WHERE customer_id=1) ts on a.transport_id=ts.Id left join ( SELECT order_code,COUNT(id) waitMovingOrderCount from rb_waitingmoving_orderdetail WHERE IFNULL(waiting_move_state,0)=0 GROUP BY order_code )k ON k.order_code=a.order_code WHERE IFNULL(f.sumNumber,0)&gt;=0 AND IFNULL(k.waitMovingOrderCount,0)=0 AND IFNULL(b.pending_move_number,0)&gt;=IFNULL(g.sumShelfNumber,0) AND b.lock_num -IFNULL(b.pending_move_number,0)-IFNULL(f.sumNumber,0)-b.put_in_num+IFNULL(g.sumShelfNumber,0) &gt; 0 GROUP BY warehouse_id ) A ON main.MoveType=A.MoveType AND main.WareHouseID=A.WareHouseID LEFT JOIN ( -- 移库生成 (已完成) SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(CASE WHEN IFNULL(b.order_code,'')='' THEN origin_order_code ELSE b.order_code END,b.SKU)) SKUNum,SUM(sku_number) ProductNumber FROM (SELECT wareHouse_id,id,origin_order_code,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType FROM t_stk_moving_task WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1 AND task_type IN (1,2,3,4)) a JOIN (SELECT moving_task_id,sku_number,sku,order_code,task_no FROM t_stk_moving_task_detail WHERE customer_id=1) b ON b.moving_task_id=a.id GROUP BY wareHouse_id,MoveType ) B ON main.MoveType=B.MoveType AND main.WareHouseID=B.WareHouseID LEFT JOIN ( -- 移库打印 (已完成) SELECT a.WareHouseID,a.MoveType,TaskNum,SKUNum,ProductNumber FROM ( SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(picking_batch_task_no,SKU)) SKUNum FROM (SELECT picking_batch_no FROM t_stk_moving_picking_batch WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1) a JOIN (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE customer_id=1) b ON a.picking_batch_no=b.picking_batch_no JOIN (SELECT id,picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON a.picking_batch_no=c.picking_batch_no JOIN (SELECT moving_task_id,sku_number,sku,task_no FROM t_stk_moving_task_detail WHERE customer_id=1) d ON d.moving_task_id=c.id GROUP BY wareHouse_id,MoveType ) A JOIN ( SELECT wareHouse_id WareHouseID,MoveType,SUM(product_number) ProductNumber FROM (SELECT picking_batch_no FROM t_stk_moving_picking_batch WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1) a JOIN (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE customer_id=1) b ON a.picking_batch_no=b.picking_batch_no JOIN (SELECT DISTINCT picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON a.picking_batch_no=c.picking_batch_no GROUP BY wareHouse_id,MoveType ) B ON A.WareHouseID=B.WareHouseID AND A.MoveType=B.MoveType) C ON main.MoveType=C.MoveType AND main.WareHouseID=C.WareHouseID LEFT JOIN ( -- 移库打印 (待完成) SELECT warehouse_id WarehouseID,MoveType, COUNT(DISTINCT b.task_no) as TaskNum, COUNT(DISTINCT c.sku) SKUNum, SUM(c.sku_number) ProductNumber FROM (SELECT id,warehouse_id,task_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType FROM t_stk_moving_task WHERE task_status=0 AND task_type IN (1,2,3,4) AND customer_id=1 AND DATE(task_create_time) BETWEEN DATE_SUB(CURRENT_DATE,INTERVAL 14 DAY) AND CURRENT_DATE) b join (SELECT moving_task_id,sku,sku_number FROM t_stk_moving_task_detail WHERE customer_id=1 ) c on b.id=c.moving_task_id GROUP BY warehouse_id,MoveType ) D ON main.MoveType=D.MoveType AND main.WareHouseID=D.WareHouseID LEFT JOIN ( -- 移库拣货(已完成) SELECT a.WareHouseID,a.MoveType,TaskNum,SKUNum,ProductNumber FROM (SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(b.picking_batch_task_no,d.SKU)) SKUNum FROM (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE picking_status=2 AND DATE(picking_time)=CURRENT_DATE AND customer_id=1 ) b JOIN (SELECT id,origin_order_code,picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON b.picking_batch_no=c.picking_batch_no JOIN (SELECT moving_task_id,sku_number,sku,order_code,task_no FROM t_stk_moving_task_detail W...; ##袁慧斌,人工修改过## AISQL修改建议:碎片化SQL 补全 缺失的索引 explain表: 额外建议: 索引建议:
    002- 数据库:zhcxkj-center-warehouse
    003- 查询时间:67.395
    004- 扫描行数:951.857
    005- 发送行数:162
    006- 指纹SQL: SELECT main . WarehouseID , K . stage Stage , main . MoveType , main . NumType , MAX ( CASE WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . TaskNum , ? ) WHEN stage = '?' THEN ? WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . TaskNum , ? ) END ) NotComplelete , MAX ( CASE WHEN stage = '?' THEN ? WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . TaskNum , ? ) WHEN stage
    007- 真实SQL:SELECT main.WarehouseID ,K.stage Stage ,main.MoveType ,main.NumType ,MAX( CASE WHEN stage='移库待生成' AND main.NumType='产品数量' THEN IFNULL(A.ProductNumber,0) WHEN stage='移库待生成' AND main.NumType='SKU数' THEN IFNULL(A.SKUNum,0) WHEN stage='移库待生成' AND main.NumType='任务数' THEN IFNULL(A.TaskNum,0) WHEN stage='移库生成' THEN 0 WHEN stage='移库打印' AND main.NumType='产品数量' THEN IFNULL(D.ProductNumber,0) WHEN stage='移库打印' AND main.NumType='SKU数' THEN IFNULL(D.SKUNum,0) WHEN stage='移库打印' AND main.NumType='任务数' THEN IFNULL(D.TaskNum,0) WHEN stage='移库拣货' AND main.NumType='产品数量' THEN IFNULL(F.ProductNumber,0) WHEN stage='移库拣货' AND main.NumType='SKU数' THEN IFNULL(F.SKUNum,0) WHEN stage='移库拣货' AND main.NumType='任务数' THEN IFNULL(F.TaskNum,0) WHEN stage='移库分拣' AND main.NumType='产品数量' THEN IFNULL(H.ProductNumber,0) WHEN stage='移库分拣' AND main.NumType='SKU数' THEN IFNULL(H.SKUNum,0) WHEN stage='移库分拣' AND main.NumType='任务数' THEN IFNULL(H.TaskNum,0) WHEN stage='移库入库' AND main.NumType='产品数量' THEN IFNULL(J.ProductNumber,0) WHEN stage='移库入库' AND main.NumType='SKU数' THEN IFNULL(J.SKUNum,0) WHEN stage='移库入库' AND main.NumType='任务数' THEN IFNULL(J.TaskNum,0) END) NotComplelete ,MAX( CASE WHEN stage='移库待生成' THEN 0 WHEN stage='移库生成' AND main.NumType='产品数量' THEN IFNULL(B.ProductNumber,0) WHEN stage='移库生成' AND main.NumType='SKU数' THEN IFNULL(B.SKUNum,0) WHEN stage='移库生成' AND main.NumType='任务数' THEN IFNULL(B.TaskNum,0) WHEN stage='移库打印' AND main.NumType='产品数量' THEN IFNULL(C.ProductNumber,0) WHEN stage='移库打印' AND main.NumType='SKU数' THEN IFNULL(C.SKUNum,0) WHEN stage='移库打印' AND main.NumType='任务数' THEN IFNULL(C.TaskNum,0) WHEN stage='移库拣货' AND main.NumType='产品数量' THEN IFNULL(E.ProductNumber,0) WHEN stage='移库拣货' AND main.NumType='SKU数' THEN IFNULL(E.SKUNum,0) WHEN stage='移库拣货' AND main.NumType='任务数' THEN IFNULL(E.TaskNum,0) WHEN stage='移库分拣' AND main.NumType='产品数量' THEN IFNULL(G.ProductNumber,0) WHEN stage='移库分拣' AND main.NumType='SKU数' THEN IFNULL(G.SKUNum,0) WHEN stage='移库分拣' AND main.NumType='任务数' THEN IFNULL(G.TaskNum,0) WHEN stage='移库入库' AND main.NumType='产品数量' THEN IFNULL(I.ProductNumber,0) WHEN stage='移库入库' AND main.NumType='SKU数' THEN IFNULL(I.SKUNum,0) WHEN stage='移库入库' AND main.NumType='任务数' THEN IFNULL(I.TaskNum,0) END) Compleleted ,CURRENT_TIMESTAMP ETLTime FROM ( SELECT MoveType,WarehouseID,NumType FROM(SELECT '存储移订单' MoveType UNION ALL SELECT '订单移存储' MoveType UNION ALL SELECT '订单移订单' MoveType) A CROSS JOIN (SELECT warehouse_id WarehouseID FROM t_stk_order_info WHERE order_state IN (0,1) AND customer_id=1 AND order_status=0 AND is_stock_order = 1 AND warehouse_id IS NOT NULL UNION SELECT warehouse_id WarehouseID FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4) AND warehouse_id IS NOT NULL UNION SELECT ware_house_id WarehouseID FROM t_stk_moving_putin_task WHERE customer_id=1 AND shelf_type IN (2,3,5,6) AND ware_house_id IS NOT NULL) B CROSS JOIN ( SELECT '产品数量' NumType UNION ALL SELECT 'SKU数' NumType UNION ALL SELECT '任务数' NumType ) C ) main LEFT JOIN ( -- 移库待生成(待完成) SELECT warehouse_id WarehouseID,'订单移存储' MoveType,COUNT(DISTINCT a.order_code) TaskNum,COUNT(DISTINCT CONCAT(a.order_code,b.SKU)) SKUNum,SUM(b.lock_num -IFNULL(b.pending_move_number,0)-b.put_in_num-IFNULL(f.sumNumber,0)+IFNULL(g.sumShelfNumber,0)) ProductNumber FROM (SELECT order_code,order_source_id,transport_id,warehouse_id FROM t_stk_order_info WHERE order_state IN (0,1) AND customer_id=1 AND order_status=0 AND is_stock_order = 1) a JOIN (SELECT order_code,id,pending_move_number,lock_num,put_in_num,SKU FROM t_stk_order_list WHERE customer_id=1 AND purchase_type &lt; 2 AND lock_num &gt; 0 AND product_num + IFNULL(product_num_update,0)&gt;0) b ON a.order_code = b.order_code JOIN (SELECT id FROM rb_order_source WHERE customer_id=1) d ON a.order_source_id = d.id LEFT JOIN ( SELECT a.order_code,b.order_list_id, SUM(case when a.task_status&lt;4 then b.sku_number else 0 end) as sumNumber FROM (SELECT order_code,task_status,id FROM t_stk_moving_task WHERE customer_id=1 and task_type in(1,2)) a JOIN (SELECT sku_number,order_list_id,moving_task_id FROM t_stk_moving_task_detail WHERE customer_id=1) b on b.moving_task_id=a.id GROUP BY a.order_code,b.order_list_id )f on f.order_code=a.order_code and f.order_list_id=b.id LEFT JOIN ( SELECT b.order_list_id,SUM(IFNULL(b.moved_number,0)) sumShelfNumber FROM (SELECT id FROM t_stk_moving_task where task_type=3 AND customer_id=1) a join (SELECT moving_task_id,order_list_id,moved_number FROM t_stk_moving_task_detail WHERE customer_id=1) b on a.id=b.moving_task_id GROUP by b.order_list_id )g on g.order_list_id=b.id LEFT JOIN (SELECT order_code FROM t_stk_order_info_beikuexpand WHERE customer_id=1) e ON a.order_code = e.order_code Left join (SELECT Id FROM t_stk_transport WHERE customer_id=1) ts on a.transport_id=ts.Id left join ( SELECT order_code,COUNT(id) waitMovingOrderCount from rb_waitingmoving_orderdetail WHERE IFNULL(waiting_move_state,0)=0 GROUP BY order_code )k ON k.order_code=a.order_code WHERE IFNULL(f.sumNumber,0)&gt;=0 AND IFNULL(k.waitMovingOrderCount,0)=0 AND IFNULL(b.pending_move_number,0)&gt;=IFNULL(g.sumShelfNumber,0) AND b.lock_num -IFNULL(b.pending_move_number,0)-IFNULL(f.sumNumber,0)-b.put_in_num+IFNULL(g.sumShelfNumber,0) &gt; 0 GROUP BY warehouse_id ) A ON main.MoveType=A.MoveType AND main.WareHouseID=A.WareHouseID LEFT JOIN ( -- 移库生成 (已完成) SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(CASE WHEN IFNULL(b.order_code,'')='' THEN origin_order_code ELSE b.order_code END,b.SKU)) SKUNum,SUM(sku_number) ProductNumber FROM (SELECT wareHouse_id,id,origin_order_code,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType FROM t_stk_moving_task WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1 AND task_type IN (1,2,3,4)) a JOIN (SELECT moving_task_id,sku_number,sku,order_code,task_no FROM t_stk_moving_task_detail WHERE customer_id=1) b ON b.moving_task_id=a.id GROUP BY wareHouse_id,MoveType ) B ON main.MoveType=B.MoveType AND main.WareHouseID=B.WareHouseID LEFT JOIN ( -- 移库打印 (已完成) SELECT a.WareHouseID,a.MoveType,TaskNum,SKUNum,ProductNumber FROM ( SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(picking_batch_task_no,SKU)) SKUNum FROM (SELECT picking_batch_no FROM t_stk_moving_picking_batch WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1) a JOIN (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE customer_id=1) b ON a.picking_batch_no=b.picking_batch_no JOIN (SELECT id,picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON a.picking_batch_no=c.picking_batch_no JOIN (SELECT moving_task_id,sku_number,sku,task_no FROM t_stk_moving_task_detail WHERE customer_id=1) d ON d.moving_task_id=c.id GROUP BY wareHouse_id,MoveType ) A JOIN ( SELECT wareHouse_id WareHouseID,MoveType,SUM(product_number) ProductNumber FROM (SELECT picking_batch_no FROM t_stk_moving_picking_batch WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1) a JOIN (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE customer_id=1) b ON a.picking_batch_no=b.picking_batch_no JOIN (SELECT DISTINCT picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON a.picking_batch_no=c.picking_batch_no GROUP BY wareHouse_id,MoveType ) B ON A.WareHouseID=B.WareHouseID AND A.MoveType=B.MoveType) C ON main.MoveType=C.MoveType AND main.WareHouseID=C.WareHouseID LEFT JOIN ( -- 移库打印 (待完成) SELECT warehouse_id WarehouseID,MoveType, COUNT(DISTINCT b.task_no) as TaskNum, COUNT(DISTINCT c.sku) SKUNum, SUM(c.sku_number) ProductNumber FROM (SELECT id,warehouse_id,task_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType FROM t_stk_moving_task WHERE task_status=0 AND task_type IN (1,2,3,4) AND customer_id=1 AND DATE(task_create_time) BETWEEN DATE_SUB(CURRENT_DATE,INTERVAL 14 DAY) AND CURRENT_DATE) b join (SELECT moving_task_id,sku,sku_number FROM t_stk_moving_task_detail WHERE customer_id=1 ) c on b.id=c.moving_task_id GROUP BY warehouse_id,MoveType ) D ON main.MoveType=D.MoveType AND main.WareHouseID=D.WareHouseID LEFT JOIN ( -- 移库拣货(已完成) SELECT a.WareHouseID,a.MoveType,TaskNum,SKUNum,ProductNumber FROM (SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(b.picking_batch_task_no,d.SKU)) SKUNum FROM (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE picking_status=2 AND DATE(picking_time)=CURRENT_DATE AND customer_id=1 ) b JOIN (SELECT id,origin_order_code,picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON b.picking_batch_no=c.picking_batch_no JOIN (SELECT moving_task_id,sku_number,sku,order_code,task_no FROM t_stk_moving_task_detail W...;
    008- ##袁慧斌,人工修改过##
    009- AISQL修改建议:碎片化SQL 补全 缺失的索引
    010- explain表:
    011- 额外建议:
    012- 索引建议:
    013-
    001- 反馈人:袁慧斌<br />
    001+ 反馈人:袁慧斌<br /> 数据库:zhcxkj-center-warehouse<br /> 查询时间:67.395<br /> 扫描行数:951.857<br /> 发送行数:162<br /> 指纹SQL: SELECT main . WarehouseID , K . stage Stage , main . MoveType , main . NumType , MAX ( CASE WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . TaskNum , ? ) WHEN stage = '?' THEN ? WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . TaskNum , ? ) END ) NotComplelete , MAX ( CASE WHEN stage = '?' THEN ? WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . TaskNum , ? ) WHEN stage <br /> 真实SQL:SELECT main.WarehouseID ,K.stage Stage ,main.MoveType ,main.NumType ,MAX( CASE WHEN stage='移库待生成' AND main.NumType='产品数量' THEN IFNULL(A.ProductNumber,0) WHEN stage='移库待生成' AND main.NumType='SKU数' THEN IFNULL(A.SKUNum,0) WHEN stage='移库待生成' AND main.NumType='任务数' THEN IFNULL(A.TaskNum,0) WHEN stage='移库生成' THEN 0 WHEN stage='移库打印' AND main.NumType='产品数量' THEN IFNULL(D.ProductNumber,0) WHEN stage='移库打印' AND main.NumType='SKU数' THEN IFNULL(D.SKUNum,0) WHEN stage='移库打印' AND main.NumType='任务数' THEN IFNULL(D.TaskNum,0) WHEN stage='移库拣货' AND main.NumType='产品数量' THEN IFNULL(F.ProductNumber,0) WHEN stage='移库拣货' AND main.NumType='SKU数' THEN IFNULL(F.SKUNum,0) WHEN stage='移库拣货' AND main.NumType='任务数' THEN IFNULL(F.TaskNum,0) WHEN stage='移库分拣' AND main.NumType='产品数量' THEN IFNULL(H.ProductNumber,0) WHEN stage='移库分拣' AND main.NumType='SKU数' THEN IFNULL(H.SKUNum,0) WHEN stage='移库分拣' AND main.NumType='任务数' THEN IFNULL(H.TaskNum,0) WHEN stage='移库入库' AND main.NumType='产品数量' THEN IFNULL(J.ProductNumber,0) WHEN stage='移库入库' AND main.NumType='SKU数' THEN IFNULL(J.SKUNum,0) WHEN stage='移库入库' AND main.NumType='任务数' THEN IFNULL(J.TaskNum,0) END) NotComplelete ,MAX( CASE WHEN stage='移库待生成' THEN 0 WHEN stage='移库生成' AND main.NumType='产品数量' THEN IFNULL(B.ProductNumber,0) WHEN stage='移库生成' AND main.NumType='SKU数' THEN IFNULL(B.SKUNum,0) WHEN stage='移库生成' AND main.NumType='任务数' THEN IFNULL(B.TaskNum,0) WHEN stage='移库打印' AND main.NumType='产品数量' THEN IFNULL(C.ProductNumber,0) WHEN stage='移库打印' AND main.NumType='SKU数' THEN IFNULL(C.SKUNum,0) WHEN stage='移库打印' AND main.NumType='任务数' THEN IFNULL(C.TaskNum,0) WHEN stage='移库拣货' AND main.NumType='产品数量' THEN IFNULL(E.ProductNumber,0) WHEN stage='移库拣货' AND main.NumType='SKU数' THEN IFNULL(E.SKUNum,0) WHEN stage='移库拣货' AND main.NumType='任务数' THEN IFNULL(E.TaskNum,0) WHEN stage='移库分拣' AND main.NumType='产品数量' THEN IFNULL(G.ProductNumber,0) WHEN stage='移库分拣' AND main.NumType='SKU数' THEN IFNULL(G.SKUNum,0) WHEN stage='移库分拣' AND main.NumType='任务数' THEN IFNULL(G.TaskNum,0) WHEN stage='移库入库' AND main.NumType='产品数量' THEN IFNULL(I.ProductNumber,0) WHEN stage='移库入库' AND main.NumType='SKU数' THEN IFNULL(I.SKUNum,0) WHEN stage='移库入库' AND main.NumType='任务数' THEN IFNULL(I.TaskNum,0) END) Compleleted ,CURRENT_TIMESTAMP ETLTime FROM ( SELECT MoveType,WarehouseID,NumType FROM(SELECT '存储移订单' MoveType UNION ALL SELECT '订单移存储' MoveType UNION ALL SELECT '订单移订单' MoveType) A CROSS JOIN (SELECT warehouse_id WarehouseID FROM t_stk_order_info WHERE order_state IN (0,1) AND customer_id=1 AND order_status=0 AND is_stock_order = 1 AND warehouse_id IS NOT NULL UNION SELECT warehouse_id WarehouseID FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4) AND warehouse_id IS NOT NULL UNION SELECT ware_house_id WarehouseID FROM t_stk_moving_putin_task WHERE customer_id=1 AND shelf_type IN (2,3,5,6) AND ware_house_id IS NOT NULL) B CROSS JOIN ( SELECT '产品数量' NumType UNION ALL SELECT 'SKU数' NumType UNION ALL SELECT '任务数' NumType ) C ) main LEFT JOIN ( -- 移库待生成(待完成) SELECT warehouse_id WarehouseID,'订单移存储' MoveType,COUNT(DISTINCT a.order_code) TaskNum,COUNT(DISTINCT CONCAT(a.order_code,b.SKU)) SKUNum,SUM(b.lock_num -IFNULL(b.pending_move_number,0)-b.put_in_num-IFNULL(f.sumNumber,0)+IFNULL(g.sumShelfNumber,0)) ProductNumber FROM (SELECT order_code,order_source_id,transport_id,warehouse_id FROM t_stk_order_info WHERE order_state IN (0,1) AND customer_id=1 AND order_status=0 AND is_stock_order = 1) a JOIN (SELECT order_code,id,pending_move_number,lock_num,put_in_num,SKU FROM t_stk_order_list WHERE customer_id=1 AND purchase_type &lt; 2 AND lock_num &gt; 0 AND product_num + IFNULL(product_num_update,0)&gt;0) b ON a.order_code = b.order_code JOIN (SELECT id FROM rb_order_source WHERE customer_id=1) d ON a.order_source_id = d.id LEFT JOIN ( SELECT a.order_code,b.order_list_id, SUM(case when a.task_status&lt;4 then b.sku_number else 0 end) as sumNumber FROM (SELECT order_code,task_status,id FROM t_stk_moving_task WHERE customer_id=1 and task_type in(1,2)) a JOIN (SELECT sku_number,order_list_id,moving_task_id FROM t_stk_moving_task_detail WHERE customer_id=1) b on b.moving_task_id=a.id GROUP BY a.order_code,b.order_list_id )f on f.order_code=a.order_code and f.order_list_id=b.id LEFT JOIN ( SELECT b.order_list_id,SUM(IFNULL(b.moved_number,0)) sumShelfNumber FROM (SELECT id FROM t_stk_moving_task where task_type=3 AND customer_id=1) a join (SELECT moving_task_id,order_list_id,moved_number FROM t_stk_moving_task_detail WHERE customer_id=1) b on a.id=b.moving_task_id GROUP by b.order_list_id )g on g.order_list_id=b.id LEFT JOIN (SELECT order_code FROM t_stk_order_info_beikuexpand WHERE customer_id=1) e ON a.order_code = e.order_code Left join (SELECT Id FROM t_stk_transport WHERE customer_id=1) ts on a.transport_id=ts.Id left join ( SELECT order_code,COUNT(id) waitMovingOrderCount from rb_waitingmoving_orderdetail WHERE IFNULL(waiting_move_state,0)=0 GROUP BY order_code )k ON k.order_code=a.order_code WHERE IFNULL(f.sumNumber,0)&gt;=0 AND IFNULL(k.waitMovingOrderCount,0)=0 AND IFNULL(b.pending_move_number,0)&gt;=IFNULL(g.sumShelfNumber,0) AND b.lock_num -IFNULL(b.pending_move_number,0)-IFNULL(f.sumNumber,0)-b.put_in_num+IFNULL(g.sumShelfNumber,0) &gt; 0 GROUP BY warehouse_id ) A ON main.MoveType=A.MoveType AND main.WareHouseID=A.WareHouseID LEFT JOIN ( -- 移库生成 (已完成) SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(CASE WHEN IFNULL(b.order_code,'')='' THEN origin_order_code ELSE b.order_code END,b.SKU)) SKUNum,SUM(sku_number) ProductNumber FROM (SELECT wareHouse_id,id,origin_order_code,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType FROM t_stk_moving_task WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1 AND task_type IN (1,2,3,4)) a JOIN (SELECT moving_task_id,sku_number,sku,order_code,task_no FROM t_stk_moving_task_detail WHERE customer_id=1) b ON b.moving_task_id=a.id GROUP BY wareHouse_id,MoveType ) B ON main.MoveType=B.MoveType AND main.WareHouseID=B.WareHouseID LEFT JOIN ( -- 移库打印 (已完成) SELECT a.WareHouseID,a.MoveType,TaskNum,SKUNum,ProductNumber FROM ( SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(picking_batch_task_no,SKU)) SKUNum FROM (SELECT picking_batch_no FROM t_stk_moving_picking_batch WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1) a JOIN (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE customer_id=1) b ON a.picking_batch_no=b.picking_batch_no JOIN (SELECT id,picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON a.picking_batch_no=c.picking_batch_no JOIN (SELECT moving_task_id,sku_number,sku,task_no FROM t_stk_moving_task_detail WHERE customer_id=1) d ON d.moving_task_id=c.id GROUP BY wareHouse_id,MoveType ) A JOIN ( SELECT wareHouse_id WareHouseID,MoveType,SUM(product_number) ProductNumber FROM (SELECT picking_batch_no FROM t_stk_moving_picking_batch WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1) a JOIN (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE customer_id=1) b ON a.picking_batch_no=b.picking_batch_no JOIN (SELECT DISTINCT picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON a.picking_batch_no=c.picking_batch_no GROUP BY wareHouse_id,MoveType ) B ON A.WareHouseID=B.WareHouseID AND A.MoveType=B.MoveType) C ON main.MoveType=C.MoveType AND main.WareHouseID=C.WareHouseID LEFT JOIN ( -- 移库打印 (待完成) SELECT warehouse_id WarehouseID,MoveType, COUNT(DISTINCT b.task_no) as TaskNum, COUNT(DISTINCT c.sku) SKUNum, SUM(c.sku_number) ProductNumber FROM (SELECT id,warehouse_id,task_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType FROM t_stk_moving_task WHERE task_status=0 AND task_type IN (1,2,3,4) AND customer_id=1 AND DATE(task_create_time) BETWEEN DATE_SUB(CURRENT_DATE,INTERVAL 14 DAY) AND CURRENT_DATE) b join (SELECT moving_task_id,sku,sku_number FROM t_stk_moving_task_detail WHERE customer_id=1 ) c on b.id=c.moving_task_id GROUP BY warehouse_id,MoveType ) D ON main.MoveType=D.MoveType AND main.WareHouseID=D.WareHouseID LEFT JOIN ( -- 移库拣货(已完成) SELECT a.WareHouseID,a.MoveType,TaskNum,SKUNum,ProductNumber FROM (SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(b.picking_batch_task_no,d.SKU)) SKUNum FROM (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE picking_status=2 AND DATE(picking_time)=CURRENT_DATE AND customer_id=1 ) b JOIN (SELECT id,origin_order_code,picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON b.picking_batch_no=c.picking_batch_no JOIN (SELECT moving_task_id,sku_number,sku,order_code,task_no FROM t_stk_moving_task_detail W...;<br /> ##袁慧斌,人工修改过##<br /> AISQL修改建议:碎片化SQL 补全 缺失的索引<br /> explain表:<br /> 额外建议:<br /> 索引建议:<br /><br />
    002- 数据库:zhcxkj-center-warehouse<br />
    003- 查询时间:67.395<br />
    004- 扫描行数:951.857<br />
    005- 发送行数:162<br />
    006- 指纹SQL: SELECT main . WarehouseID , K . stage Stage , main . MoveType , main . NumType , MAX ( CASE WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( A . TaskNum , ? ) WHEN stage = '?' THEN ? WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( D . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( F . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( H . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( J . TaskNum , ? ) END ) NotComplelete , MAX ( CASE WHEN stage = '?' THEN ? WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( B . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( C . TaskNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . ProductNumber , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . SKUNum , ? ) WHEN stage = '?' AND main . NumType = '?' THEN IFNULL ( E . TaskNum , ? ) WHEN stage <br />
    007- 真实SQL:SELECT main.WarehouseID ,K.stage Stage ,main.MoveType ,main.NumType ,MAX( CASE WHEN stage='移库待生成' AND main.NumType='产品数量' THEN IFNULL(A.ProductNumber,0) WHEN stage='移库待生成' AND main.NumType='SKU数' THEN IFNULL(A.SKUNum,0) WHEN stage='移库待生成' AND main.NumType='任务数' THEN IFNULL(A.TaskNum,0) WHEN stage='移库生成' THEN 0 WHEN stage='移库打印' AND main.NumType='产品数量' THEN IFNULL(D.ProductNumber,0) WHEN stage='移库打印' AND main.NumType='SKU数' THEN IFNULL(D.SKUNum,0) WHEN stage='移库打印' AND main.NumType='任务数' THEN IFNULL(D.TaskNum,0) WHEN stage='移库拣货' AND main.NumType='产品数量' THEN IFNULL(F.ProductNumber,0) WHEN stage='移库拣货' AND main.NumType='SKU数' THEN IFNULL(F.SKUNum,0) WHEN stage='移库拣货' AND main.NumType='任务数' THEN IFNULL(F.TaskNum,0) WHEN stage='移库分拣' AND main.NumType='产品数量' THEN IFNULL(H.ProductNumber,0) WHEN stage='移库分拣' AND main.NumType='SKU数' THEN IFNULL(H.SKUNum,0) WHEN stage='移库分拣' AND main.NumType='任务数' THEN IFNULL(H.TaskNum,0) WHEN stage='移库入库' AND main.NumType='产品数量' THEN IFNULL(J.ProductNumber,0) WHEN stage='移库入库' AND main.NumType='SKU数' THEN IFNULL(J.SKUNum,0) WHEN stage='移库入库' AND main.NumType='任务数' THEN IFNULL(J.TaskNum,0) END) NotComplelete ,MAX( CASE WHEN stage='移库待生成' THEN 0 WHEN stage='移库生成' AND main.NumType='产品数量' THEN IFNULL(B.ProductNumber,0) WHEN stage='移库生成' AND main.NumType='SKU数' THEN IFNULL(B.SKUNum,0) WHEN stage='移库生成' AND main.NumType='任务数' THEN IFNULL(B.TaskNum,0) WHEN stage='移库打印' AND main.NumType='产品数量' THEN IFNULL(C.ProductNumber,0) WHEN stage='移库打印' AND main.NumType='SKU数' THEN IFNULL(C.SKUNum,0) WHEN stage='移库打印' AND main.NumType='任务数' THEN IFNULL(C.TaskNum,0) WHEN stage='移库拣货' AND main.NumType='产品数量' THEN IFNULL(E.ProductNumber,0) WHEN stage='移库拣货' AND main.NumType='SKU数' THEN IFNULL(E.SKUNum,0) WHEN stage='移库拣货' AND main.NumType='任务数' THEN IFNULL(E.TaskNum,0) WHEN stage='移库分拣' AND main.NumType='产品数量' THEN IFNULL(G.ProductNumber,0) WHEN stage='移库分拣' AND main.NumType='SKU数' THEN IFNULL(G.SKUNum,0) WHEN stage='移库分拣' AND main.NumType='任务数' THEN IFNULL(G.TaskNum,0) WHEN stage='移库入库' AND main.NumType='产品数量' THEN IFNULL(I.ProductNumber,0) WHEN stage='移库入库' AND main.NumType='SKU数' THEN IFNULL(I.SKUNum,0) WHEN stage='移库入库' AND main.NumType='任务数' THEN IFNULL(I.TaskNum,0) END) Compleleted ,CURRENT_TIMESTAMP ETLTime FROM ( SELECT MoveType,WarehouseID,NumType FROM(SELECT '存储移订单' MoveType UNION ALL SELECT '订单移存储' MoveType UNION ALL SELECT '订单移订单' MoveType) A CROSS JOIN (SELECT warehouse_id WarehouseID FROM t_stk_order_info WHERE order_state IN (0,1) AND customer_id=1 AND order_status=0 AND is_stock_order = 1 AND warehouse_id IS NOT NULL UNION SELECT warehouse_id WarehouseID FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4) AND warehouse_id IS NOT NULL UNION SELECT ware_house_id WarehouseID FROM t_stk_moving_putin_task WHERE customer_id=1 AND shelf_type IN (2,3,5,6) AND ware_house_id IS NOT NULL) B CROSS JOIN ( SELECT '产品数量' NumType UNION ALL SELECT 'SKU数' NumType UNION ALL SELECT '任务数' NumType ) C ) main LEFT JOIN ( -- 移库待生成(待完成) SELECT warehouse_id WarehouseID,'订单移存储' MoveType,COUNT(DISTINCT a.order_code) TaskNum,COUNT(DISTINCT CONCAT(a.order_code,b.SKU)) SKUNum,SUM(b.lock_num -IFNULL(b.pending_move_number,0)-b.put_in_num-IFNULL(f.sumNumber,0)+IFNULL(g.sumShelfNumber,0)) ProductNumber FROM (SELECT order_code,order_source_id,transport_id,warehouse_id FROM t_stk_order_info WHERE order_state IN (0,1) AND customer_id=1 AND order_status=0 AND is_stock_order = 1) a JOIN (SELECT order_code,id,pending_move_number,lock_num,put_in_num,SKU FROM t_stk_order_list WHERE customer_id=1 AND purchase_type &lt; 2 AND lock_num &gt; 0 AND product_num + IFNULL(product_num_update,0)&gt;0) b ON a.order_code = b.order_code JOIN (SELECT id FROM rb_order_source WHERE customer_id=1) d ON a.order_source_id = d.id LEFT JOIN ( SELECT a.order_code,b.order_list_id, SUM(case when a.task_status&lt;4 then b.sku_number else 0 end) as sumNumber FROM (SELECT order_code,task_status,id FROM t_stk_moving_task WHERE customer_id=1 and task_type in(1,2)) a JOIN (SELECT sku_number,order_list_id,moving_task_id FROM t_stk_moving_task_detail WHERE customer_id=1) b on b.moving_task_id=a.id GROUP BY a.order_code,b.order_list_id )f on f.order_code=a.order_code and f.order_list_id=b.id LEFT JOIN ( SELECT b.order_list_id,SUM(IFNULL(b.moved_number,0)) sumShelfNumber FROM (SELECT id FROM t_stk_moving_task where task_type=3 AND customer_id=1) a join (SELECT moving_task_id,order_list_id,moved_number FROM t_stk_moving_task_detail WHERE customer_id=1) b on a.id=b.moving_task_id GROUP by b.order_list_id )g on g.order_list_id=b.id LEFT JOIN (SELECT order_code FROM t_stk_order_info_beikuexpand WHERE customer_id=1) e ON a.order_code = e.order_code Left join (SELECT Id FROM t_stk_transport WHERE customer_id=1) ts on a.transport_id=ts.Id left join ( SELECT order_code,COUNT(id) waitMovingOrderCount from rb_waitingmoving_orderdetail WHERE IFNULL(waiting_move_state,0)=0 GROUP BY order_code )k ON k.order_code=a.order_code WHERE IFNULL(f.sumNumber,0)&gt;=0 AND IFNULL(k.waitMovingOrderCount,0)=0 AND IFNULL(b.pending_move_number,0)&gt;=IFNULL(g.sumShelfNumber,0) AND b.lock_num -IFNULL(b.pending_move_number,0)-IFNULL(f.sumNumber,0)-b.put_in_num+IFNULL(g.sumShelfNumber,0) &gt; 0 GROUP BY warehouse_id ) A ON main.MoveType=A.MoveType AND main.WareHouseID=A.WareHouseID LEFT JOIN ( -- 移库生成 (已完成) SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(CASE WHEN IFNULL(b.order_code,'')='' THEN origin_order_code ELSE b.order_code END,b.SKU)) SKUNum,SUM(sku_number) ProductNumber FROM (SELECT wareHouse_id,id,origin_order_code,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType FROM t_stk_moving_task WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1 AND task_type IN (1,2,3,4)) a JOIN (SELECT moving_task_id,sku_number,sku,order_code,task_no FROM t_stk_moving_task_detail WHERE customer_id=1) b ON b.moving_task_id=a.id GROUP BY wareHouse_id,MoveType ) B ON main.MoveType=B.MoveType AND main.WareHouseID=B.WareHouseID LEFT JOIN ( -- 移库打印 (已完成) SELECT a.WareHouseID,a.MoveType,TaskNum,SKUNum,ProductNumber FROM ( SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(picking_batch_task_no,SKU)) SKUNum FROM (SELECT picking_batch_no FROM t_stk_moving_picking_batch WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1) a JOIN (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE customer_id=1) b ON a.picking_batch_no=b.picking_batch_no JOIN (SELECT id,picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON a.picking_batch_no=c.picking_batch_no JOIN (SELECT moving_task_id,sku_number,sku,task_no FROM t_stk_moving_task_detail WHERE customer_id=1) d ON d.moving_task_id=c.id GROUP BY wareHouse_id,MoveType ) A JOIN ( SELECT wareHouse_id WareHouseID,MoveType,SUM(product_number) ProductNumber FROM (SELECT picking_batch_no FROM t_stk_moving_picking_batch WHERE DATE(create_time)=CURRENT_DATE AND customer_id=1) a JOIN (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE customer_id=1) b ON a.picking_batch_no=b.picking_batch_no JOIN (SELECT DISTINCT picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON a.picking_batch_no=c.picking_batch_no GROUP BY wareHouse_id,MoveType ) B ON A.WareHouseID=B.WareHouseID AND A.MoveType=B.MoveType) C ON main.MoveType=C.MoveType AND main.WareHouseID=C.WareHouseID LEFT JOIN ( -- 移库打印 (待完成) SELECT warehouse_id WarehouseID,MoveType, COUNT(DISTINCT b.task_no) as TaskNum, COUNT(DISTINCT c.sku) SKUNum, SUM(c.sku_number) ProductNumber FROM (SELECT id,warehouse_id,task_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType FROM t_stk_moving_task WHERE task_status=0 AND task_type IN (1,2,3,4) AND customer_id=1 AND DATE(task_create_time) BETWEEN DATE_SUB(CURRENT_DATE,INTERVAL 14 DAY) AND CURRENT_DATE) b join (SELECT moving_task_id,sku,sku_number FROM t_stk_moving_task_detail WHERE customer_id=1 ) c on b.id=c.moving_task_id GROUP BY warehouse_id,MoveType ) D ON main.MoveType=D.MoveType AND main.WareHouseID=D.WareHouseID LEFT JOIN ( -- 移库拣货(已完成) SELECT a.WareHouseID,a.MoveType,TaskNum,SKUNum,ProductNumber FROM (SELECT wareHouse_id WareHouseID,MoveType,COUNT(DISTINCT task_no) TaskNum,COUNT(DISTINCT CONCAT(b.picking_batch_task_no,d.SKU)) SKUNum FROM (SELECT picking_batch_no,product_number,picking_batch_task_no FROM t_stk_moving_picking_task WHERE picking_status=2 AND DATE(picking_time)=CURRENT_DATE AND customer_id=1 ) b JOIN (SELECT id,origin_order_code,picking_batch_no,CASE task_type WHEN 1 THEN '存储移订单' WHEN 2 THEN '存储移订单' WHEN 3 THEN '订单移存储' WHEN 4 THEN '订单移订单' END MoveType,wareHouse_id FROM t_stk_moving_task WHERE customer_id=1 AND task_type IN (1,2,3,4)) c ON b.picking_batch_no=c.picking_batch_no JOIN (SELECT moving_task_id,sku_number,sku,order_code,task_no FROM t_stk_moving_task_detail W...;<br />
    008- ##袁慧斌,人工修改过##<br />
    009- AISQL修改建议:碎片化SQL 补全 缺失的索引<br />
    010- explain表:<br />
    011- 额外建议:<br />
    012- 索引建议:<br />
    013- <br />
  6. 2025-08-06 20:20:02, 由 陈莉珍 关闭。
    修改了 Bug状态 ,旧值为 "resolved",新值为 "closed"。
    修改了 指派给 ,旧值为 "chenlizhen",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "chenlizhen"。
    修改了 关闭日期,旧值为 "",新值为 "2025-08-06 20:20:02"。
所属项目 技术中心-需求池
所属模块 数据智能   数据工程
所属计划
所属迭代
Bug类型 程序BUG
严重程度 一般
优先级 P2
Bug状态 已关闭
业务部门 总经办
影响功能
开发责任人 余效檀
测试责任人 余效檀
解决时效 18.09
激活次数 0
激活日期
是否确认 是
当前指派 Closed 于 2025-08-06 20:20:02
截止日期 0000-00-00
上线时间 2025-08-06 09:20:00
上线时效 18.1
操作系统
浏览器
关键词
抄送给
所属迭代
相关需求
相关任务
由谁创建 陈莉珍 于 2025-08-05 15:14:02
影响环境 生产环境-业务反馈
由谁解决 余效檀 于 2025-08-06 09:19:33
解决版本 主干
解决方案 程序BUG
由谁关闭 陈莉珍 于 2025-08-06 20:20:02
最后修改 陈莉珍 于 2025-08-06 20:20:02
相关Bug