SELECT p.policy_id, p.policy_number, p.insurance_name, p.other_information, CASE WHEN p.policy_id IS NOT NULL AND t.service_id IS NULL AND s.service_apply_id IS NULL THEN '保单未分配(在中支节点)' WHEN t.dispatch_status = 2 THEN '已推送服务机构(待服务机构领取任务)' WHEN t.status = 1 THEN '任务已分配至XX服务专家(待开展)' WHEN t.status = 2 THEN '服务专家已签到(事故预防服务中)' WHEN t.status = 10 THEN '服务报告已上传' ELSE '-1' END AS service_status_name SELECT p.policy_number, p.insurance_name, p.other_information, CASE WHEN p.policy_id IS NOT NULL AND t.service_id IS NULL AND s.service_apply_id IS NULL THEN '保单未分配(在中支节点)' WHEN t.dispatch_status = 2 THEN '已推送服务机构(待服务机构领取任务)' WHEN t.status = 1 THEN '任务已分配至XX服务专家(待开展)' WHEN t.status = 2 THEN '服务专家已签到(事故预防服务中)' WHEN t.status = 10 THEN '服务报告已上传' ELSE '-1' END AS service_status_name FROM tbl_policy p LEFT JOIN tbl_service_apply s ON p.policy_id = s.policy_id LEFT JOIN tbl_service t ON s.service_apply_id = t.service_apply_id ((p.policy_id IS NOT NULL AND t.service_id IS NULL AND s.service_apply_id IS NULL) OR t.dispatch_status = 2 OR t.status IN (1, 2, 10)) AND (p.policy_id IS NOT NULL AND t.service_id IS NULL AND s.service_apply_id IS NULL) AND t.dispatch_status = 2 AND t.status = 1 AND t.status = 2 AND t.status = 10 AND p.start_date >= CURRENT_TIMESTAMP - INTERVAL '7 days' AND p.done_date <= CURRENT_TIMESTAMP AND p.start_date >= CURRENT_TIMESTAMP - INTERVAL '1 month' AND p.done_date <= CURRENT_TIMESTAMP AND p.start_date >= CURRENT_TIMESTAMP - INTERVAL '3 months' AND p.done_date <= CURRENT_TIMESTAMP AND p.start_date >= #{policy.startDate} || ' 00:00:00' AND p.done_date <= #{policy.doneDate} || ' 23:59:59'