QUERY PLAN
Aggregate (cost=48.24..48.25 rows=1 width=64)
-> Append (cost=24.10..48.23 rows=2 width=64)
-> Aggregate (cost=24.10..24.11 rows=1 width=64)
-> Hash Right Join (cost=9.93..24.08 rows=3 width=10)
Hash Cond: (eipss.erp_sales_outbound_id = t.id)
-> Seq Scan on tbl_erp_inventory_product_spents eipss (cost=0.00..12.65 rows=565 width=14)
-> Hash (cost=9.91..9.91 rows=1 width=4)
-> Seq Scan on tbl_erp_sales_outbounds t (cost=1.07..9.91 rows=1 width=4)
Filter: (((NOT (hashed SubPlan 1)) OR (project_id IS NULL)) AND (created_at >= '2025-05-01 00:00:00+08'::timestamp with time zone) AND (created_at <= '2025-05-31 23:59:59+08'::timestamp with time zone) AND (status = 2))
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=24.08..24.09 rows=1 width=64)
-> Merge Join (cost=10.76..24.05 rows=2 width=15)
Merge Cond: (pd.id = am.erp_profit_distribute_id)
-> Nested Loop (cost=9.56..35.97 rows=2 width=14)
Join Filter: (t_1.project_id = pd.project_id)
-> Index Scan using tbl_erp_profit_distributes_pkey on tbl_erp_profit_distributes pd (cost=0.13..12.19 rows=4 width=8)
-> Materialize (cost=9.43..23.72 rows=1 width=18)
-> Nested Loop (cost=9.43..23.72 rows=1 width=18)
Join Filter: (t_1.project_id = t_2.project_id)
-> 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))
-> Materialize (cost=8.37..22.54 rows=3 width=14)
-> Hash Right Join (cost=8.37..22.53 rows=3 width=14)
Hash Cond: (eipss_1.erp_sales_outbound_id = t_1.id)
-> Seq Scan on tbl_erp_inventory_product_spents eipss_1 (cost=0.00..12.65 rows=565 width=14)
-> Hash (cost=8.36..8.36 rows=1 width=8)
-> Seq Scan on tbl_erp_sales_outbounds t_1 (cost=0.00..8.36 rows=1 width=8)
Filter: ((created_at >= '2025-05-01 00:00:00+08'::timestamp with time zone) AND (created_at <= '2025-05-31 23:59:59+08'::timestamp with time zone) AND (status = 2))
-> Sort (cost=1.20..1.22 rows=8 width=9)
Sort Key: am.erp_profit_distribute_id
-> Seq Scan on tbl_erp_profit_distribute_pcts am (cost=0.00..1.08 rows=8 width=9)