-- ============================================= -- 门店业绩统计视图创建脚本 -- 功能:统计所有门店的目标业绩、完成业绩、完成率等关键指标 -- 作者:系统自动生成 -- 创建时间:2025年 -- ============================================= -- 先删除视图(如果存在) DROP VIEW IF EXISTS v_store_performance_simple; -- ============================================= -- 创建门店业绩统计视图(当月数据) -- ============================================= CREATE VIEW v_store_performance_simple AS SELECT `md`.`F_Id` AS `store_id`, `md`.`djmd` AS `store_code`, `md`.`dm` AS `store_name`, COALESCE ( `md`.`xsyj`, 0 ) AS `target_performance`, COALESCE ( `actual`.`actual_performance`, 0 ) AS `actual_performance`, ( CASE WHEN ( COALESCE ( `md`.`xsyj`, 0 ) > 0 ) THEN round( ( ( COALESCE ( `actual`.`actual_performance`, 0 ) / `md`.`xsyj` ) * 100 ), 2 ) ELSE 0 END ) AS `completion_rate`, COALESCE ( `actual`.`order_count`, 0 ) AS `order_count` FROM ( `lqerp`.`lq_mdxx` `md` LEFT JOIN ( SELECT `kd`.`djmd` AS `djmd`, sum( COALESCE ( `px`.`F_TotalPrice`, 0 ) ) AS `actual_performance`, count( DISTINCT `kd`.`F_Id` ) AS `order_count` FROM ( `lqerp`.`lq_kd_kdjlb` `kd` LEFT JOIN `lqerp`.`lq_kd_pxmx` `px` ON ( ( `kd`.`F_Id` = `px`.`glkdbh` ) ) ) WHERE ( ( YEAR ( `kd`.`kdrq` ) = YEAR ( curdate( ) ) ) AND ( MONTH ( `kd`.`kdrq` ) = MONTH ( curdate( ) ) ) AND ( isnull( `px`.`F_CreateTIme` ) OR ( ( YEAR ( `px`.`F_CreateTIme` ) = YEAR ( curdate( ) ) ) AND ( MONTH ( `px`.`F_CreateTIme` ) = MONTH ( curdate( ) ) ) ) ) ) GROUP BY `kd`.`djmd` ) `actual` ON ( ( `md`.`F_Id` = `actual`.`djmd` ) ) ) ORDER BY COALESCE ( `actual`.`actual_performance`, 0 ) DESC -- ============================================= -- 添加视图注释 -- ============================================= ALTER VIEW v_store_performance_simple COMMENT = '门店业绩统计视图(当月数据)- 统计所有门店的目标业绩、完成业绩(实付业绩)、完成率等关键指标'; -- ============================================= -- 视图字段说明 -- ============================================= /* 字段说明: - store_id: 门店ID(来自lq_mdxx.F_Id) - store_code: 门店编码(来自lq_mdxx.djmd) - store_name: 店名(来自lq_mdxx.dm) - target_performance: 目标业绩/生命线(来自lq_mdxx.xsyj) - actual_performance: 完成业绩(来自lq_kd_pxmx.F_TotalPrice的汇总) - completion_rate: 完成率百分比(actual_performance / target_performance * 100) - order_count: 开单数量(有效开单记录数) 关联说明: - 主表:lq_mdxx(门店信息表) - 关联表:lq_kd_kdjlb(开单记录表)+ lq_kd_pxmx(开单品项表) - 关联条件:lq_mdxx.F_Id = lq_kd_kdjlb.djmd, lq_kd_kdjlb.F_Id = lq_kd_pxmx.glkdbh - 关联方式:LEFT JOIN(确保所有门店都显示,包括没有开单记录的门店) 数据来源: - 目标业绩:lq_mdxx.xsyj(目标-门店生命线) - 完成业绩:lq_kd_pxmx.F_TotalPrice(金额合计) - 开单数量:lq_kd_kdjlb表记录数统计 时间过滤: - 开单日期:lq_kd_kdjlb.kdrq(当月) - 品项创建时间:lq_kd_pxmx.F_CreateTIme(当月) 注意事项: 1. 使用金额合计(F_TotalPrice)而不是品项价格(pxjg) 2. 只统计当月的数据(开单日期和品项创建时间都是当月) 3. 即使目标业绩、完成业绩为0的门店也会显示 4. 完成率计算时,目标业绩为0的门店显示0%完成率 5. 按完成业绩降序排列,便于查看业绩排名 6. 确保开单品项也是当月创建的,避免历史数据干扰 */ -- ============================================= -- 使用示例 -- ============================================= /* -- 查看所有门店当月业绩 SELECT * FROM v_store_performance_simple; -- 查看华润店当月业绩 SELECT * FROM v_store_performance_simple WHERE store_name LIKE '%华润%'; -- 查看已完成目标的门店(当月) SELECT * FROM v_store_performance_simple WHERE completion_rate >= 100; -- 查看零业绩的门店(当月) SELECT * FROM v_store_performance_simple WHERE actual_performance = 0; -- 按完成率排名(当月) SELECT * FROM v_store_performance_simple WHERE target_performance > 0 ORDER BY completion_rate DESC; -- 查看当月业绩前10名门店 SELECT * FROM v_store_performance_simple ORDER BY actual_performance DESC LIMIT 10; -- 查看当月完成率低于50%的门店 SELECT * FROM v_store_performance_simple WHERE completion_rate < 50 AND target_performance > 0; */