| Aggregate (cost=935.40..935.41 rows=1 width=32) |
| -> Group (cost=935.22..935.28 rows=9 width=42) |
| Group Key: sc.id2, tbl_sales_contracts.erp_settle_amount |
| -> Sort (cost=935.22..935.24 rows=9 width=10) |
| Sort Key: sc.id2, tbl_sales_contracts.erp_settle_amount |
| -> Hash Right Join (cost=893.85..935.07 rows=9 width=10) |
| Hash Cond: (tbl_sales_contracts.id = sc.id2) |
| -> HashAggregate (cost=72.65..89.97 rows=1732 width=10) |
| Group Key: tbl_sales_contracts.id |
| -> Seq Scan on tbl_sales_contracts (cost=0.00..68.32 rows=1732 width=10) |
| -> Hash (cost=821.19..821.19 rows=1 width=4) |
| -> Subquery Scan on sc (cost=821.17..821.19 rows=1 width=4) |
| -> Sort (cost=821.17..821.18 rows=1 width=571) |
| Sort Key: (CASE WHEN (t0.id IS NOT NULL) THEN t0.remind_date ELSE sc_1.signed_at END) DESC |
| -> Nested Loop Semi Join (cost=490.33..821.16 rows=1 width=571) |
| Join Filter: (sc_1.id = sub.contract_id) |
| -> Hash Left Join (cost=399.52..516.17 rows=13 width=16) |
| Hash Cond: (c.sales_rep = sgr.sales_id) |
| -> Nested Loop Left Join (cost=397.37..513.91 rows=13 width=20) |
| Filter: ((c.sales_rep = ANY ('{1001,5049,5500,5301,5499,5022,5209,5026,5293,5309,5356,5329,5299,5303,5302,5332,5047,1026,5096,5070,5448,5420,1029,5037,5087,1008,5048,5043,5045,5230,5031,5088,5208,1003,5467,5294,5357,5044,1030,5076,5300,5027,5089,5311,5066,5069,5364,1009,5295,1013,5128,5203,1025,5032,5075,5476,1004,5072,5033,5359,5412,5409,5229,1005,5304,5449,5358,1006,5093}'::integer[])) OR (c.sales_rep IS NULL)) |
| -> Hash Right Join (cost=397.09..411.26 rows=17 width=20) |
| Hash Cond: (t0.contract_id = sc_1.id) |
| Filter: (((t0.id IS NOT NULL) AND (t0.paid_amount <> '0'::numeric)) OR ((t0.id IS NULL) AND (sc_1.erp_settle_amount > '0'::numeric))) |
| -> HashAggregate (cost=328.56..334.82 rows=626 width=67) |
| Group Key: t0.id |
| -> Hash Join (cost=292.33..327.00 rows=626 width=18) |
| Hash Cond: (t0.contract_id = t1.id) |
| -> Seq Scan on tbl_sales_contract_payment_collection_remind_dates t0 (cost=0.00..23.93 rows=1193 width=18) |
| -> Hash (cost=280.97..280.97 rows=909 width=4) |
| -> Hash Join (cost=208.21..280.97 rows=909 width=4) |
| Hash Cond: (t1.from_project = p.id) |
| -> Seq Scan on tbl_sales_contracts t1 (cost=0.00..68.32 rows=1686 width=8) |
| Filter: (need_analysis AND (from_project IS NOT NULL)) |
| -> Hash (cost=186.78..186.78 rows=1715 width=4) |
| -> Seq Scan on tbl_projects p (cost=0.00..186.78 rows=1715 width=4) |
| Filter: (project_status = 3) |
| -> Hash (cost=68.32..68.32 rows=17 width=22) |
| -> Seq Scan on tbl_sales_contracts sc_1 (cost=0.00..68.32 rows=17 width=22) |
| Filter: (build_by_project AND (NOT need_analysis)) |
| -> Index Scan using tbl_clients_pkey on tbl_clients c (cost=0.28..5.94 rows=1 width=8) |
| Index Cond: (sc_1.client_id = id) |
| -> Hash (cost=1.51..1.51 rows=51 width=4) |
| -> Seq Scan on tbl_sales_group_relationships sgr (cost=0.00..1.51 rows=51 width=4) |
| -> Materialize (cost=90.81..302.87 rows=11 width=4) |
| -> Subquery Scan on sub (cost=90.81..302.81 rows=11 width=4) |
| Filter: ((sub.collected_date >= '2026-06-01 00:00:00+08'::timestamp with time zone) AND (sub.collected_date <= '2026-06-01 23:59:59+08'::timestamp with time zone)) |
| -> Append (cost=90.81..270.41 rows=2160 width=124) |
| -> Subquery Scan on "*SELECT* 1" (cost=90.81..175.49 rows=2153 width=83) |
| -> Hash Join (cost=90.81..148.58 rows=2153 width=79) |
| Hash Cond: (r.erp_collect_ticket_id = t.id) |
| -> Seq Scan on tbl_erp_collect_ticket_settles r (cost=0.00..35.94 rows=2160 width=18) |
| Filter: (sales_contract_id IS NOT NULL) |
| -> Hash (cost=63.45..63.45 rows=2189 width=37) |
| -> Seq Scan on tbl_erp_collect_tickets t (cost=0.00..63.45 rows=2189 width=37) |
| Filter: (status = ANY ('{2,5}'::integer[])) |
| -> Nested Loop (cost=0.29..9.33 rows=1 width=95) |
| -> Seq Scan on tbl_erp_cash_cost_ticket_sales_contract_settles r_1 (cost=0.00..1.02 rows=1 width=17) |
| Filter: (sales_contract_id IS NOT NULL) |
| -> Index Scan using tbl_erp_cash_cost_tickets_pkey on tbl_erp_cash_cost_tickets t_1 (cost=0.29..8.30 rows=1 width=46) |
| Index Cond: (id = r_1.erp_cash_cost_ticket_id) |
| Filter: (is_payment_settle AND (status = ANY ('{2,5}'::integer[]))) |
| -> Nested Loop (cost=0.28..85.52 rows=6 width=116) |
| -> Seq Scan on tbl_erp_payment_ticket_settles r_2 (cost=0.00..39.65 rows=6 width=18) |
| Filter: (sales_contract_id IS NOT NULL) |
| -> Index Scan using tbl_erp_payment_tickets_pkey on tbl_erp_payment_tickets t_2 (cost=0.28..7.63 rows=1 width=40) |
| Index Cond: (id = r_2.erp_payment_ticket_id) |
| Filter: (is_payment_settle AND (status = ANY ('{2,5}'::integer[]))) |