SELECT pd.policy_num,
p.user_id,
CONCAT AS client_name,
un.company_name AS carrier_name,
pc.underwriter_premium AS carrier_premium,
pc.opt_travel_premium AS mexvisit_premium,
pc.evac_premium AS tme_premium,
DATE_FORMAT(FROM_UNIXTIME(pd.sales_time), '%Y-%m') AS sales_date,
af.business_name AS affiliate_name,
p.aff_id AS affiliate_id,
NULL AS producer_commission_amount,
ac.agent_premium AS affiliate_commission_rate,
pdvr.city AS billing_city,
s.name AS billing_state,
pdvr.zip AS billing_postalcode,
NULL AS classification,
CASE
WHEN p.leave_date < UNIX_TIMESTAMP() THEN 'Expired'
ELSE 'Active'
END AS policy_status
FROM policydetails pd
JOIN policies p ON pd.policy_id = p.id
JOIN users u ON p.user_id = u.id
JOIN underwriters un ON pd.underwriter_id = un.id
LEFT JOIN (
SELECT policy_id,
MAX AS underwriter_premium,
MAX AS opt_travel_premium,
MAX AS evac_premium
FROM policyCosts
GROUP BY policy_id
) pc ON pd.policy_id = pc.policy_id
LEFT JOIN (
SELECT aff_id, underwriter_id, sales_type, MAX AS agent_premium
FROM affComm
GROUP BY aff_id, underwriter_id, sales_type
) ac ON p.aff_id = ac.aff_id AND pd.underwriter_id = ac.underwriter_id AND pd.sales_type = ac.sales_type
JOIN affDetails af ON p.aff_id = af.aff_id
JOIN policydrivers pdvr ON pd.policy_id = pdvr.policy_id
JOIN states s ON pdvr.state = s.id
WHERE pd.sales_time >= 1704067200
AND pd.sales_time < 1735680000;
Please use this.
Thanks,
Leo