| Aggregate (cost=49.79..49.80 rows=1 width=32) |
| -> Append (cost=26.20..49.78 rows=2 width=32) |
| -> Aggregate (cost=26.20..26.21 rows=1 width=32) |
| -> Nested Loop Left Join (cost=5.02..26.19 rows=4 width=5) |
| Filter: ((NOT (hashed SubPlan 1)) OR (t.sales_contract_id IS NULL)) |
| -> Hash Join (cost=3.66..4.84 rows=4 width=9) |
| Hash Cond: (am.erp_other_income_ticket_id = t.id) |
| -> Seq Scan on tbl_erp_other_income_ticket_handlers am (cost=0.00..1.14 rows=14 width=9) |
| -> Hash (cost=3.40..3.40 rows=21 width=8) |
| -> Seq Scan on tbl_erp_other_income_tickets t (cost=0.00..3.40 rows=21 width=8) |
| Filter: ((created_at >= '2026-01-01 00:00:00+08'::timestamp with time zone) AND (created_at <= '2026-12-31 23:59:59+08'::timestamp with time zone) AND (status = 2)) |
| -> Index Scan using tbl_sales_contracts_pkey on tbl_sales_contracts sc (cost=0.28..5.06 rows=1 width=8) |
| Index Cond: (id = t.sales_contract_id) |
| SubPlan 1 |
| -> Group (cost=1.06..1.07 rows=2 width=4) |
| Group Key: t_3.project_id |
| -> Sort (cost=1.06..1.06 rows=2 width=4) |
| Sort Key: t_3.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_3 (cost=0.00..1.05 rows=2 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> Aggregate (cost=23.54..23.55 rows=1 width=32) |
| -> Nested Loop (cost=18.81..23.53 rows=1 width=11) |
| Join Filter: (pd.project_id = sc_1.from_project) |
| -> Hash Join (cost=17.72..21.21 rows=1 width=14) |
| Hash Cond: (t_1.sales_contract_id = sc_1.id) |
| -> Seq Scan on tbl_erp_other_income_tickets t_1 (cost=0.00..3.40 rows=21 width=10) |
| Filter: ((created_at >= '2026-01-01 00:00:00+08'::timestamp with time zone) AND (created_at <= '2026-12-31 23:59:59+08'::timestamp with time zone) AND (status = 2)) |
| -> Hash (cost=17.70..17.70 rows=2 width=12) |
| -> Nested Loop (cost=1.34..17.70 rows=2 width=12) |
| -> Group (cost=1.06..1.07 rows=2 width=4) |
| Group Key: t_2.project_id |
| -> Sort (cost=1.06..1.06 rows=2 width=4) |
| Sort Key: t_2.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_2 (cost=0.00..1.05 rows=2 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> Index Scan using tbl_sales_contracts_from_project_idx on tbl_sales_contracts sc_1 (cost=0.28..8.29 rows=1 width=8) |
| Index Cond: (from_project = t_2.project_id) |
| -> Hash Join (cost=1.09..2.21 rows=8 width=9) |
| Hash Cond: (am_1.erp_profit_distribute_id = pd.id) |
| -> Seq Scan on tbl_erp_profit_distribute_pcts am_1 (cost=0.00..1.08 rows=8 width=9) |
| -> Hash (cost=1.04..1.04 rows=4 width=8) |
| -> Seq Scan on tbl_erp_profit_distributes pd (cost=0.00..1.04 rows=4 width=8) |