[已用]创建门店每日耗卡统计视图.sql 2.53 KB
-- 创建门店每日耗卡统计视图
-- 统计各个门店每日项目数(耗卡里面的项目数量)和消耗业绩(耗卡里面的金额)

DROP VIEW IF EXISTS `v_store_daily_consume_stats`;

CREATE VIEW `v_store_daily_consume_stats` AS
SELECT 
    hk.md AS store_id,                    -- 门店ID
    hk.mdbh AS store_code,                -- 门店编号
    hk.mdmc AS store_name,                -- 门店名称
    DATE(hk.hksj) AS consume_date,        -- 耗卡日期
    COUNT(DISTINCT hk.F_Id) AS consume_count,  -- 耗卡记录数
    COALESCE(SUM(px.F_ProjectNumber), 0) AS total_project_count,  -- 总项目数
    COALESCE(SUM(px.F_TotalPrice), 0) AS total_consume_amount,    -- 总消耗金额
    COALESCE(SUM(CASE WHEN px.F_IsEnabled = 1 THEN px.F_ProjectNumber ELSE 0 END), 0) AS enabled_project_count,  -- 有效项目数
    COALESCE(SUM(CASE WHEN px.F_IsEnabled = 1 THEN px.F_TotalPrice ELSE 0 END), 0) AS enabled_consume_amount,    -- 有效消耗金额
    COALESCE(SUM(CASE WHEN px.F_SourceType = '开卡' THEN px.F_ProjectNumber ELSE 0 END), 0) AS card_project_count,  -- 开卡项目数
    COALESCE(SUM(CASE WHEN px.F_SourceType = '开卡' THEN px.F_TotalPrice ELSE 0 END), 0) AS card_consume_amount,    -- 开卡消耗金额
    COALESCE(SUM(CASE WHEN px.F_SourceType = '赠送' THEN px.F_ProjectNumber ELSE 0 END), 0) AS gift_project_count,  -- 赠送项目数
    COALESCE(SUM(CASE WHEN px.F_SourceType = '赠送' THEN px.F_TotalPrice ELSE 0 END), 0) AS gift_consume_amount,    -- 赠送消耗金额
    COALESCE(SUM(CASE WHEN px.F_SourceType = '其他' THEN px.F_ProjectNumber ELSE 0 END), 0) AS other_project_count,  -- 其他项目数
    COALESCE(SUM(CASE WHEN px.F_SourceType = '其他' THEN px.F_TotalPrice ELSE 0 END), 0) AS other_consume_amount,    -- 其他消耗金额
    COUNT(DISTINCT hk.hy) AS member_count,  -- 消费会员数
    hk.hksj AS create_time                 -- 创建时间
FROM lq_xh_hyhk hk
LEFT JOIN lq_xh_pxmx px ON hk.F_Id = px.F_ConsumeInfoId
WHERE hk.hksj IS NOT NULL
GROUP BY hk.md, hk.mdbh, hk.mdmc, DATE(hk.hksj), hk.hksj
ORDER BY hk.md, DATE(hk.hksj) DESC;

-- 添加视图注释
ALTER VIEW `v_store_daily_consume_stats` COMMENT = '门店每日耗卡统计视图 - 统计各门店每日项目数和消耗业绩';

-- 视图说明:
-- 1. 按门店和日期分组统计耗卡数据
-- 2. 统计项目数和消耗金额,区分不同来源类型
-- 3. 包含有效/无效项目统计
-- 4. 按来源类型(开卡、赠送、其他)分别统计
-- 5. 统计消费会员数量
-- 6. 按门店和日期降序排列