| Sort (cost=1996.26..1996.29 rows=12 width=249) |
| Sort Key: (((((((COALESCE(sum((sum((sum(eipss.total_amount))))), '0'::numeric) + COALESCE(sum(t.budget), '0'::numeric)) + COALESCE(sum((sum((sum(am_1.amount))))), '0'::numeric)) - COALESCE(sum((sum((sum(eipss.actual_total_amount))))), '0'::numeric)) - COALESCE(sum(t.cost), '0'::numeric)) - COALESCE(sum((sum((sum(am_3.amount))))), '0'::numeric)) - COALESCE(sum(t.expense), '0'::numeric))) DESC, u.id |
| -> Hash Right Join (cost=1956.79..1996.04 rows=12 width=249) |
| Hash Cond: (u_1.id = u.id) |
| Filter: (((u.user_status = '1'::type_global_user_status) OR (u_1.id IS NOT NULL)) AND ((u.user_status = '1'::type_global_user_status) OR (((COALESCE(sum((sum((sum(eipss.total_amount))))), '0'::numeric) + COALESCE(sum(t.budget), '0'::numeric))) <> '0'::numeric) OR (((COALESCE(sum((sum((sum(eipss.actual_total_amount))))), '0'::numeric) + COALESCE(sum(t.cost), '0'::numeric))) <> '0'::numeric) OR ((COALESCE(sum((sum((sum(am_1.amount))))), '0'::numeric)) <> '0'::numeric) OR (((COALESCE(sum((sum((sum(am_3.amount))))), '0'::numeric) + COALESCE(sum(t.expense), '0'::numeric))) <> '0'::numeric) OR (((((COALESCE(sum((sum((sum(eipss.actual_total_amount))))), '0'::numeric) + COALESCE(sum(t.cost), '0'::numeric)) + COALESCE(sum((sum((sum(am_3.amount))))), '0'::numeric)) + COALESCE(sum(t.expense), '0'::numeric))) <> '0'::numeric) OR ((((COALESCE(sum((sum((sum(eipss.total_amount))))), '0'::numeric) + COALESCE(sum(t.budget), '0'::numeric)) + COALESCE(sum((sum((sum(am_1.amount))))), '0'::numeric))) <> '0'::numeric) OR ((((((((COALESCE(sum((sum((sum(eipss.total_amount))))), '0'::numeric) + COALESCE(sum(t.budget), '0'::numeric)) + COALESCE(sum((sum((sum(am_1.amount))))), '0'::numeric)) - COALESCE(sum((sum((sum(eipss.actual_total_amount))))), '0'::numeric)) - COALESCE(sum(t.cost), '0'::numeric)) - COALESCE(sum((sum((sum(am_3.amount))))), '0'::numeric)) - COALESCE(sum(t.expense), '0'::numeric))) <> '0'::numeric) OR (u.id = ANY ('{1001,1004,1005,5087,5295,5300}'::integer[])))) |
| -> GroupAggregate (cost=1938.04..1975.43 rows=144 width=228) |
| Group Key: u_1.id |
| -> Merge Left Join (cost=1938.04..1953.47 rows=144 width=228) |
| Merge Cond: (u_1.id = t.user_id) |
| -> Merge Left Join (cost=1936.61..1951.67 rows=144 width=132) |
| Merge Cond: (u_1.id = am_3.user_id) |
| -> Merge Left Join (cost=243.12..254.46 rows=144 width=100) |
| Merge Cond: (u_1.id = am_1.user_id) |
| -> Merge Left Join (cost=89.69..100.54 rows=144 width=68) |
| Merge Cond: (u_1.id = t_1.handler) |
| -> Index Only Scan using tbl_users_pkey on tbl_users u_1 (cost=0.14..10.30 rows=144 width=4) |
| -> GroupAggregate (cost=89.54..89.72 rows=7 width=68) |
| Group Key: t_1.handler |
| -> Sort (cost=89.54..89.56 rows=7 width=68) |
| Sort Key: t_1.handler |
| -> Append (cost=37.63..89.44 rows=7 width=68) |
| -> HashAggregate (cost=37.63..37.72 rows=6 width=68) |
| Group Key: t_1.handler |
| -> Hash Right Join (cost=23.16..37.14 rows=65 width=13) |
| Hash Cond: (eipss.erp_sales_outbound_id = t_1.id) |
| -> Seq Scan on tbl_erp_inventory_product_spents eipss (cost=0.00..12.51 rows=551 width=13) |
| -> Hash (cost=22.93..22.93 rows=18 width=8) |
| -> Seq Scan on tbl_erp_sales_outbounds t_1 (cost=12.89..22.93 rows=18 width=8) |
| Filter: (((NOT (hashed SubPlan 1)) OR (project_id IS NULL)) AND (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)) |
| SubPlan 1 |
| -> Group (cost=12.88..12.89 rows=1 width=4) |
| Group Key: t_19.project_id |
| -> Sort (cost=12.88..12.89 rows=1 width=4) |
| Sort Key: t_19.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_19 (cost=0.00..12.88 rows=1 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> GroupAggregate (cost=51.62..51.66 rows=1 width=68) |
| Group Key: am.user_id |
| -> Sort (cost=51.62..51.62 rows=1 width=18) |
| Sort Key: am.user_id |
| -> Nested Loop (cost=35.95..51.61 rows=1 width=18) |
| Join Filter: (pd.id = am.erp_profit_distribute_id) |
| -> Hash Join (cost=35.95..50.43 rows=1 width=13) |
| Hash Cond: (t_2.project_id = pd.project_id) |
| -> Hash Right Join (cost=10.11..24.09 rows=130 width=13) |
| Hash Cond: (eipss_1.erp_sales_outbound_id = t_2.id) |
| -> Seq Scan on tbl_erp_inventory_product_spents eipss_1 (cost=0.00..12.51 rows=551 width=13) |
| -> Hash (cost=9.66..9.66 rows=36 width=8) |
| -> Seq Scan on tbl_erp_sales_outbounds t_2 (cost=0.00..9.66 rows=36 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)) |
| -> Hash (cost=25.83..25.83 rows=1 width=12) |
| -> Hash Join (cost=12.91..25.83 rows=1 width=12) |
| Hash Cond: (pd.project_id = t_3.project_id) |
| -> Seq Scan on tbl_erp_profit_distributes pd (cost=0.00..12.30 rows=230 width=8) |
| -> Hash (cost=12.90..12.90 rows=1 width=4) |
| -> Group (cost=12.88..12.89 rows=1 width=4) |
| Group Key: t_3.project_id |
| -> Sort (cost=12.88..12.89 rows=1 width=4) |
| Sort Key: t_3.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_3 (cost=0.00..12.88 rows=1 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> Seq Scan on tbl_erp_profit_distribute_pcts am (cost=0.00..1.08 rows=8 width=13) |
| -> GroupAggregate (cost=153.43..153.49 rows=3 width=36) |
| Group Key: am_1.user_id |
| -> Sort (cost=153.43..153.44 rows=3 width=36) |
| Sort Key: am_1.user_id |
| -> Append (cost=44.20..153.41 rows=3 width=36) |
| -> GroupAggregate (cost=44.20..44.24 rows=2 width=36) |
| Group Key: am_1.user_id |
| -> Sort (cost=44.20..44.21 rows=2 width=36) |
| Sort Key: am_1.user_id |
| -> Nested Loop Left Join (cost=27.27..44.19 rows=2 width=36) |
| Filter: (((NOT (hashed SubPlan 2)) OR (t_4.sales_contract_id IS NULL)) AND ((NOT (hashed SubPlan 3)) OR (t_4.sales_contract_id IS NULL))) |
| -> Hash Join (cost=1.20..3.96 rows=2 width=40) |
| Hash Cond: (t_4.id = am_1.erp_other_income_ticket_id) |
| -> Seq Scan on tbl_erp_other_income_tickets t_4 (cost=0.00..2.70 rows=11 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)) |
| -> Hash (cost=1.09..1.09 rows=9 width=40) |
| -> Seq Scan on tbl_erp_other_income_ticket_handlers am_1 (cost=0.00..1.09 rows=9 width=40) |
| -> Index Scan using tbl_sales_contracts_pkey on tbl_sales_contracts sc (cost=0.28..7.20 rows=1 width=8) |
| Index Cond: (id = t_4.sales_contract_id) |
| SubPlan 2 |
| -> Group (cost=12.88..12.89 rows=1 width=4) |
| Group Key: t_20.project_id |
| -> Sort (cost=12.88..12.89 rows=1 width=4) |
| Sort Key: t_20.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_20 (cost=0.00..12.88 rows=1 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| SubPlan 3 |
| -> Group (cost=12.88..12.89 rows=1 width=4) |
| Group Key: t_21.project_id |
| -> Sort (cost=12.88..12.89 rows=1 width=4) |
| Sort Key: t_21.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_21 (cost=0.00..12.88 rows=1 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> GroupAggregate (cost=109.11..109.14 rows=1 width=36) |
| Group Key: am_2.user_id |
| -> Sort (cost=109.11..109.12 rows=1 width=15) |
| Sort Key: am_2.user_id |
| -> Nested Loop (cost=13.19..109.10 rows=1 width=15) |
| Join Filter: (pd_1.id = am_2.erp_profit_distribute_id) |
| -> Nested Loop (cost=13.19..107.92 rows=1 width=10) |
| Join Filter: (pd_1.project_id = sc_1.from_project) |
| -> Hash Join (cost=12.91..25.83 rows=1 width=12) |
| Hash Cond: (pd_1.project_id = t_6.project_id) |
| -> Seq Scan on tbl_erp_profit_distributes pd_1 (cost=0.00..12.30 rows=230 width=8) |
| -> Hash (cost=12.90..12.90 rows=1 width=4) |
| -> Group (cost=12.88..12.89 rows=1 width=4) |
| Group Key: t_6.project_id |
| -> Sort (cost=12.88..12.89 rows=1 width=4) |
| Sort Key: t_6.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_6 (cost=0.00..12.88 rows=1 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> Nested Loop (cost=0.28..81.95 rows=11 width=10) |
| -> Seq Scan on tbl_erp_other_income_tickets t_5 (cost=0.00..2.70 rows=11 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)) |
| -> Index Scan using tbl_sales_contracts_pkey on tbl_sales_contracts sc_1 (cost=0.28..7.20 rows=1 width=8) |
| Index Cond: (id = t_5.sales_contract_id) |
| -> Seq Scan on tbl_erp_profit_distribute_pcts am_2 (cost=0.00..1.08 rows=8 width=13) |
| -> GroupAggregate (cost=1693.49..1695.07 rows=79 width=36) |
| Group Key: am_3.user_id |
| -> Sort (cost=1693.49..1693.69 rows=79 width=36) |
| Sort Key: am_3.user_id |
| -> Append (cost=825.48..1691.00 rows=79 width=36) |
| -> HashAggregate (cost=825.48..826.23 rows=60 width=36) |
| Group Key: am_3.user_id |
| -> Hash Left Join (cost=665.26..824.04 rows=288 width=9) |
| Hash Cond: (t_7.sales_contract_id = sc_2.id) |
| Filter: ((NOT (hashed SubPlan 4)) OR (t_7.sales_contract_id IS NULL)) |
| -> Hash Join (cost=512.55..670.47 rows=328 width=13) |
| Hash Cond: (am_3.erp_cash_cost_ticket_id = t_7.id) |
| -> Seq Scan on tbl_erp_cash_cost_ticket_handlers am_3 (cost=0.00..136.09 rows=8309 width=13) |
| -> Hash (cost=508.38..508.38 rows=334 width=8) |
| -> Seq Scan on tbl_erp_cash_cost_tickets t_7 (cost=0.00..508.38 rows=334 width=8) |
| Filter: (is_payment_settle AND (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 (created_at >= '2025-08-08 14:34:58+08'::timestamp with time zone) AND (status = 2)) |
| -> Hash (cost=118.25..118.25 rows=1725 width=8) |
| -> Seq Scan on tbl_sales_contracts sc_2 (cost=0.00..118.25 rows=1725 width=8) |
| SubPlan 4 |
| -> Group (cost=12.88..12.89 rows=1 width=4) |
| Group Key: t_22.project_id |
| -> Sort (cost=12.88..12.89 rows=1 width=4) |
| Sort Key: t_22.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_22 (cost=0.00..12.88 rows=1 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> GroupAggregate (cost=664.62..664.65 rows=1 width=36) |
| Group Key: am_4.user_id |
| -> Sort (cost=664.62..664.63 rows=1 width=14) |
| Sort Key: am_4.user_id |
| -> Nested Loop (cost=12.91..664.61 rows=1 width=14) |
| Join Filter: (pd_2.id = am_4.erp_profit_distribute_id) |
| -> Nested Loop (cost=12.91..663.43 rows=1 width=9) |
| Join Filter: (sc_3.from_project = pd_2.project_id) |
| -> Nested Loop (cost=12.91..648.26 rows=1 width=13) |
| Join Filter: (sc_3.id = t_8.sales_contract_id) |
| -> Hash Join (cost=12.91..135.70 rows=1 width=12) |
| Hash Cond: (sc_3.from_project = t_9.project_id) |
| -> Seq Scan on tbl_sales_contracts sc_3 (cost=0.00..118.25 rows=1725 width=8) |
| -> Hash (cost=12.90..12.90 rows=1 width=4) |
| -> Group (cost=12.88..12.89 rows=1 width=4) |
| Group Key: t_9.project_id |
| -> Sort (cost=12.88..12.89 rows=1 width=4) |
| Sort Key: t_9.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_9 (cost=0.00..12.88 rows=1 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> Seq Scan on tbl_erp_cash_cost_tickets t_8 (cost=0.00..508.38 rows=334 width=9) |
| Filter: (is_payment_settle AND (created_at >= '2025-08-08 14:34:58+08'::timestamp with time zone) AND (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)) |
| -> Seq Scan on tbl_erp_profit_distributes pd_2 (cost=0.00..12.30 rows=230 width=8) |
| -> Seq Scan on tbl_erp_profit_distribute_pcts am_4 (cost=0.00..1.08 rows=8 width=13) |
| -> GroupAggregate (cost=19.34..19.44 rows=5 width=36) |
| Group Key: am_5.user_id |
| -> Sort (cost=19.34..19.35 rows=5 width=36) |
| Sort Key: am_5.user_id |
| -> Hash Join (cost=17.65..19.28 rows=5 width=36) |
| Hash Cond: (am_5.erp_cost_ticket_id = t_10.id) |
| -> Seq Scan on tbl_erp_cost_ticket_handlers am_5 (cost=0.00..1.49 rows=49 width=40) |
| -> Hash (cost=17.54..17.54 rows=9 width=4) |
| -> Seq Scan on tbl_erp_cost_tickets t_10 (cost=12.89..17.54 rows=9 width=4) |
| 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 ((NOT (hashed SubPlan 5)) OR (project_id IS NULL)) AND (status = 2)) |
| SubPlan 5 |
| -> Group (cost=12.88..12.89 rows=1 width=4) |
| Group Key: t_23.project_id |
| -> Sort (cost=12.88..12.89 rows=1 width=4) |
| Sort Key: t_23.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_23 (cost=0.00..12.88 rows=1 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> GroupAggregate (cost=31.62..31.64 rows=1 width=36) |
| Group Key: am_6.user_id |
| -> Sort (cost=31.62..31.62 rows=1 width=14) |
| Sort Key: am_6.user_id |
| -> Nested Loop (cost=12.91..31.61 rows=1 width=14) |
| Join Filter: (pd_3.project_id = t_11.project_id) |
| -> Nested Loop (cost=12.91..27.01 rows=1 width=17) |
| Join Filter: (pd_3.id = am_6.erp_profit_distribute_id) |
| -> Hash Join (cost=12.91..25.83 rows=1 width=12) |
| Hash Cond: (pd_3.project_id = t_12.project_id) |
| -> Seq Scan on tbl_erp_profit_distributes pd_3 (cost=0.00..12.30 rows=230 width=8) |
| -> Hash (cost=12.90..12.90 rows=1 width=4) |
| -> Group (cost=12.88..12.89 rows=1 width=4) |
| Group Key: t_12.project_id |
| -> Sort (cost=12.88..12.89 rows=1 width=4) |
| Sort Key: t_12.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_12 (cost=0.00..12.88 rows=1 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> Seq Scan on tbl_erp_profit_distribute_pcts am_6 (cost=0.00..1.08 rows=8 width=13) |
| -> Seq Scan on tbl_erp_cost_tickets t_11 (cost=0.00..4.44 rows=13 width=9) |
| 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)) |
| -> GroupAggregate (cost=24.10..24.16 rows=3 width=36) |
| Group Key: am_7.user_id |
| -> Sort (cost=24.10..24.11 rows=3 width=36) |
| Sort Key: am_7.user_id |
| -> Hash Join (cost=22.39..24.07 rows=3 width=36) |
| Hash Cond: (am_7.erp_cost_convert_ticket_id = t_13.id) |
| -> Seq Scan on tbl_erp_cost_convert_ticket_handlers am_7 (cost=0.00..1.49 rows=49 width=40) |
| -> Hash (cost=22.38..22.38 rows=1 width=4) |
| -> Nested Loop Left Join (cost=13.17..22.38 rows=1 width=4) |
| Filter: ((NOT (hashed SubPlan 6)) OR (t_13.sales_contract_id IS NULL)) |
| -> Seq Scan on tbl_erp_cost_convert_tickets t_13 (cost=0.00..1.18 rows=1 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_4 (cost=0.28..8.29 rows=1 width=8) |
| Index Cond: (id = t_13.sales_contract_id) |
| SubPlan 6 |
| -> Group (cost=12.88..12.89 rows=1 width=4) |
| Group Key: t_24.project_id |
| -> Sort (cost=12.88..12.89 rows=1 width=4) |
| Sort Key: t_24.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_24 (cost=0.00..12.88 rows=1 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> GroupAggregate (cost=36.51..36.54 rows=1 width=36) |
| Group Key: am_8.user_id |
| -> Sort (cost=36.51..36.52 rows=1 width=41) |
| Sort Key: am_8.user_id |
| -> Nested Loop (cost=13.19..36.50 rows=1 width=41) |
| Join Filter: (pd_4.id = am_8.erp_profit_distribute_id) |
| -> Nested Loop (cost=13.19..35.32 rows=1 width=36) |
| Join Filter: (pd_4.project_id = sc_5.from_project) |
| -> Hash Join (cost=12.91..25.83 rows=1 width=12) |
| Hash Cond: (pd_4.project_id = t_15.project_id) |
| -> Seq Scan on tbl_erp_profit_distributes pd_4 (cost=0.00..12.30 rows=230 width=8) |
| -> Hash (cost=12.90..12.90 rows=1 width=4) |
| -> Group (cost=12.88..12.89 rows=1 width=4) |
| Group Key: t_15.project_id |
| -> Sort (cost=12.88..12.89 rows=1 width=4) |
| Sort Key: t_15.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_15 (cost=0.00..12.88 rows=1 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> Nested Loop (cost=0.28..9.48 rows=1 width=36) |
| -> Seq Scan on tbl_erp_cost_convert_tickets t_14 (cost=0.00..1.18 rows=1 width=36) |
| 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_5 (cost=0.28..8.29 rows=1 width=8) |
| Index Cond: (id = t_14.sales_contract_id) |
| -> Seq Scan on tbl_erp_profit_distribute_pcts am_8 (cost=0.00..1.08 rows=8 width=13) |
| -> HashAggregate (cost=37.26..37.34 rows=7 width=36) |
| Group Key: t_16.handler |
| -> Hash Right Join (cost=21.88..35.85 rows=188 width=13) |
| Hash Cond: (eipss_2.erp_sales_gift_id = t_16.id) |
| -> Seq Scan on tbl_erp_inventory_product_spents eipss_2 (cost=0.00..12.51 rows=551 width=13) |
| -> Hash (cost=21.36..21.36 rows=42 width=8) |
| -> Seq Scan on tbl_erp_sales_gifts t_16 (cost=12.89..21.36 rows=42 width=8) |
| Filter: (((NOT (hashed SubPlan 7)) OR (project_id IS NULL)) AND (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)) |
| SubPlan 7 |
| -> Group (cost=12.88..12.89 rows=1 width=4) |
| Group Key: t_25.project_id |
| -> Sort (cost=12.88..12.89 rows=1 width=4) |
| Sort Key: t_25.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_25 (cost=0.00..12.88 rows=1 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> GroupAggregate (cost=50.18..50.21 rows=1 width=36) |
| Group Key: am_9.user_id |
| -> Sort (cost=50.18..50.19 rows=1 width=18) |
| Sort Key: am_9.user_id |
| -> Nested Loop (cost=34.40..50.17 rows=1 width=18) |
| Join Filter: (pd_5.id = am_9.erp_profit_distribute_id) |
| -> Hash Right Join (cost=34.40..48.99 rows=1 width=13) |
| Hash Cond: (eipss_3.erp_sales_gift_id = t_17.id) |
| -> Seq Scan on tbl_erp_inventory_product_spents eipss_3 (cost=0.00..12.51 rows=551 width=13) |
| -> Hash (cost=34.39..34.39 rows=1 width=8) |
| -> Hash Join (cost=21.22..34.39 rows=1 width=8) |
| Hash Cond: (pd_5.project_id = t_17.project_id) |
| -> Seq Scan on tbl_erp_profit_distributes pd_5 (cost=0.00..12.30 rows=230 width=8) |
| -> Hash (cost=21.21..21.21 rows=1 width=12) |
| -> Hash Join (cost=12.91..21.21 rows=1 width=12) |
| Hash Cond: (t_17.project_id = t_18.project_id) |
| -> Seq Scan on tbl_erp_sales_gifts t_17 (cost=0.00..8.15 rows=49 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)) |
| -> Hash (cost=12.90..12.90 rows=1 width=4) |
| -> Group (cost=12.88..12.89 rows=1 width=4) |
| Group Key: t_18.project_id |
| -> Sort (cost=12.88..12.89 rows=1 width=4) |
| Sort Key: t_18.project_id |
| -> Seq Scan on tbl_erp_profit_distributes t_18 (cost=0.00..12.88 rows=1 width=4) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> Seq Scan on tbl_erp_profit_distribute_pcts am_9 (cost=0.00..1.08 rows=8 width=13) |
| -> Sort (cost=1.43..1.43 rows=1 width=100) |
| Sort Key: t.user_id |
| -> Seq Scan on tbl_erp_user_profits t (cost=0.00..1.42 rows=1 width=100) |
| 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)) |
| -> Hash (cost=18.60..18.60 rows=12 width=29) |
| -> Seq Scan on tbl_users u (cost=0.00..18.60 rows=12 width=29) |
| Filter: (id = ANY ('{5332,1001,5087,5467,5300,5311,5295,1013,5476,1004,1005,5449}'::integer[])) |