更新潜客为新客.sql 1.82 KB
-- ============================================
-- 更新会员类型:将存在耗卡记录的潜客(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;