INSERT INTO ta_person_from_record ( scene_id, is_first_time, `event`, scene_type, person_id, create_date, org_id, share_person_id, target_id, target_type, event_type, building_id,activity ) SELECT '1000' AS scene_id, 1 AS is_first_time, 'share' AS `event`, 'other' AS scene_type, t.person_id, t.create_date, t.org_id, f.share_person, f.target_id, CASE WHEN f.target_type = 'dynamic_share' THEN 'dynamic' WHEN f.target_type = 'card_share' THEN 'card' WHEN f.target_type = 'news_share' THEN 'news' ELSE '' END target_type, CASE WHEN f.target_type = 'building_share' THEN 'building' WHEN f.target_type = 'dynamic_share' THEN 'activity' WHEN f.target_type = 'card_share' THEN 'card' WHEN f.target_type = 'news_share' THEN 'news' ELSE '' END event_type, f.building_id , 'person' as activity FROM ta_person t LEFT JOIN ta_share_person_from f ON t.person_id = f.person_id AND f.is_first_time = 1 AND t.org_id = f.org_id WHERE 1 = 1 GROUP BY t.org_id, t.person_id; INSERT INTO ts_person_from_statistic(from_num,scene_type,event_type,org_id,create_date,registered_num) SELECT count( 1 ) AS from_num, t.scene_type, t.event_type, t.org_id, t.create_date, sum( IF ( p.phone IS NOT NULL OR p.tel IS NOT NULL, 1, 0 ) ) AS registered_num FROM ta_person_from_record t LEFT JOIN ta_person p ON t.person_id = p.person_id WHERE t.is_first_time = 1 GROUP BY t.scene_type, t.event_type, t.org_id