-- ============================================
-- 更新会员类型：将存在耗卡记录的潜客（0）更新为新客（1）
-- ============================================
-- 
-- 功能说明：
-- 1. 查找会员类型为 0（潜客/线索）的会员
-- 2. 如果该会员存在有效的耗卡记录（lq_xh_hyhk 表中有记录且 F_IsEffective = 1）
-- 3. 将该会员的类型更新为 1（新客）
--
-- 执行前建议：
-- 1. 先执行查询语句查看会更新多少条记录
-- 2. 确认无误后再执行更新语句
-- ============================================

-- 1. 查询语句：查看将要更新的会员数量和信息
SELECT 
    kh.F_Id AS 会员ID,
    kh.khmc AS 会员名称,
    kh.sjh AS 手机号,
    kh.khlx AS 当前类型,
    COUNT(hyhk.F_Id) AS 耗卡记录数
FROM lq_khxx kh
INNER JOIN lq_xh_hyhk hyhk ON kh.F_Id = hyhk.hy
WHERE kh.khlx = '0'  -- 会员类型为 0（潜客/线索）
  AND hyhk.F_IsEffective = 1  -- 耗卡记录有效
GROUP BY kh.F_Id, kh.khmc, kh.sjh, kh.khlx;

-- 2. 更新语句：将存在耗卡记录的潜客更新为新客
UPDATE lq_khxx kh
SET kh.khlx = '1'  -- 更新为新客（1）
WHERE kh.khlx = '0'  -- 会员类型为 0（潜客/线索）
  AND EXISTS (
      -- 确保至少有一条有效的耗卡记录
      SELECT 1 
      FROM lq_xh_hyhk hyhk 
      WHERE hyhk.hy = kh.F_Id 
        AND hyhk.F_IsEffective = 1
      LIMIT 1
  );

-- 3. 验证语句：查看更新后的结果
SELECT 
    kh.F_Id AS 会员ID,
    kh.khmc AS 会员名称,
    kh.sjh AS 手机号,
    kh.khlx AS 更新后类型,
    COUNT(hyhk.F_Id) AS 耗卡记录数
FROM lq_khxx kh
INNER JOIN lq_xh_hyhk hyhk ON kh.F_Id = hyhk.hy
WHERE kh.khlx = '1'  -- 会员类型为 1（新客）
  AND hyhk.F_IsEffective = 1  -- 耗卡记录有效
GROUP BY kh.F_Id, kh.khmc, kh.sjh, kh.khlx
HAVING COUNT(hyhk.F_Id) > 0;

