51 lines
1.7 KiB
SQL
51 lines
1.7 KiB
SQL
-- 修复项目总人数统计口径:直接员工、关系人流水归属员工、项目流水账号归属员工统一纳入项目员工范围。
|
|
UPDATE ccdi_project project
|
|
LEFT JOIN (
|
|
SELECT
|
|
scope_staff.project_id,
|
|
COUNT(DISTINCT scope_staff.id_card) AS target_count
|
|
FROM (
|
|
SELECT
|
|
bs.project_id,
|
|
staff.id_card
|
|
FROM ccdi_bank_statement bs
|
|
INNER JOIN ccdi_base_staff staff
|
|
ON staff.id_card = TRIM(bs.cret_no)
|
|
WHERE bs.cret_no IS NOT NULL
|
|
AND TRIM(bs.cret_no) != ''
|
|
|
|
UNION
|
|
|
|
SELECT
|
|
bs.project_id,
|
|
family_staff.id_card
|
|
FROM ccdi_bank_statement bs
|
|
INNER JOIN ccdi_staff_fmy_relation relation
|
|
ON relation.relation_cert_no = TRIM(bs.cret_no)
|
|
AND relation.status = 1
|
|
INNER JOIN ccdi_base_staff family_staff
|
|
ON family_staff.id_card = relation.person_id
|
|
WHERE bs.cret_no IS NOT NULL
|
|
AND TRIM(bs.cret_no) != ''
|
|
|
|
UNION
|
|
|
|
SELECT
|
|
bs.project_id,
|
|
account_staff.id_card
|
|
FROM ccdi_bank_statement bs
|
|
INNER JOIN ccdi_account_info account
|
|
ON TRIM(account.account_no) = TRIM(bs.LE_ACCOUNT_NO)
|
|
AND account.owner_type = 'EMPLOYEE'
|
|
INNER JOIN ccdi_base_staff account_staff
|
|
ON account_staff.id_card = account.owner_id
|
|
WHERE bs.LE_ACCOUNT_NO IS NOT NULL
|
|
AND TRIM(bs.LE_ACCOUNT_NO) != ''
|
|
) scope_staff
|
|
GROUP BY scope_staff.project_id
|
|
) stats ON stats.project_id = project.project_id
|
|
SET project.target_count = COALESCE(stats.target_count, 0),
|
|
project.update_by = 'system',
|
|
project.update_time = NOW()
|
|
WHERE project.del_flag = '0';
|