| Limit (cost=46004.78..46004.88 rows=40 width=560) |
| -> Sort (cost=46004.78..46009.01 rows=1691 width=560) |
| Sort Key: p.erp_labor_cost_amount, p.updated_at DESC |
| -> Subquery Scan on p (cost=45452.48..45951.33 rows=1691 width=560) |
| -> GroupAggregate (cost=45452.48..45917.51 rows=1691 width=532) |
| Group Key: p_1.id, pd.user_id, pd.pct |
| -> Sort (cost=45452.48..45456.71 rows=1691 width=456) |
| Sort Key: p_1.id, pd.user_id, pd.pct |
| -> Hash Left Join (cost=2911.33..45361.81 rows=1691 width=456) |
| Hash Cond: (p_1.id = esgs.project_id) |
| -> Hash Left Join (cost=2887.57..45333.61 rows=1691 width=424) |
| Hash Cond: (p_1.id = eccrta.project_id) |
| -> Hash Left Join (cost=2878.09..45319.67 rows=1691 width=392) |
| Hash Cond: (p_1.id = ecctcpc.project_id) |
| -> Hash Left Join (cost=2291.67..44728.81 rows=1691 width=360) |
| Hash Cond: (p_1.id = ecctasc.project_id) |
| -> Hash Left Join (cost=1701.10..44133.79 rows=1691 width=328) |
| Hash Cond: (p_1.id = ecta.project_id) |
| -> Hash Right Join (cost=1695.39..44123.63 rows=1691 width=296) |
| Hash Cond: ("*SELECT* 1".project_id = p_1.id) |
| -> GroupAggregate (cost=1299.35..43723.75 rows=200 width=12) |
| Group Key: "*SELECT* 1".project_id |
| -> Sort (cost=1299.35..1303.59 rows=1698 width=65) |
| Sort Key: "*SELECT* 1".project_id |
| -> Hash Left Join (cost=151.44..1208.25 rows=1698 width=65) |
| Hash Cond: (("*SELECT* 1".engineer_id = payroll.user_id) AND ("*SELECT* 1".settle_month = payroll.settle_month)) |
| -> Hash Left Join (cost=101.62..1149.52 rows=1698 width=37) |
| Hash Cond: ("*SELECT* 1".engineer_id = psrr.user_id) |
| -> Append (cost=99.14..1139.31 rows=1698 width=20) |
| -> Subquery Scan on "*SELECT* 1" (cost=99.14..414.50 rows=320 width=20) |
| -> Hash Join (cost=99.14..411.30 rows=320 width=280) |
| Hash Cond: (c.id = p_2.case_id) |
| -> Seq Scan on tbl_cases c (cost=0.00..267.14 rows=5043 width=12) |
| Filter: (project_id IS NOT NULL) |
| -> Hash (cost=92.38..92.38 rows=541 width=28) |
| -> Seq Scan on tbl_pre_sales p_2 (cost=0.00..92.38 rows=541 width=28) |
| Filter: ((start_at IS NOT NULL) AND (end_at IS NOT NULL) AND (engineer_id IS NOT NULL) AND ((NOT is_draft) OR (is_draft IS NULL)) AND (end_at > start_at)) |
| -> Subquery Scan on "*SELECT* 2" (cost=329.81..724.81 rows=1378 width=20) |
| -> Hash Join (cost=329.81..711.03 rows=1378 width=280) |
| Hash Cond: (i.case_id = c_1.id) |
| -> Seq Scan on tbl_implement_records i (cost=0.00..357.85 rows=2340 width=24) |
| Filter: ((arrived_at IS NOT NULL) AND (left_at IS NOT NULL) AND ((NOT is_draft) OR (is_draft IS NULL)) AND (left_at > arrived_at)) |
| -> Hash (cost=267.14..267.14 rows=5014 width=16) |
| -> Seq Scan on tbl_cases c_1 (cost=0.00..267.14 rows=5014 width=16) |
| Filter: ((last_engineer IS NOT NULL) AND (project_id IS NOT NULL)) |
| -> Hash (cost=2.28..2.28 rows=16 width=21) |
| -> Hash Left Join (cost=1.07..2.28 rows=16 width=21) |
| Hash Cond: (psrr.punch_strategy_id = ps.id) |
| -> Seq Scan on tbl_punch_strategy_resource_rels psrr (cost=0.00..1.16 rows=16 width=8) |
| -> Hash (cost=1.03..1.03 rows=3 width=17) |
| -> Seq Scan on tbl_punch_strategies ps (cost=0.00..1.03 rows=3 width=17) |
| -> Hash (cost=46.82..46.82 rows=200 width=40) |
| -> Subquery Scan on payroll (cost=42.32..46.82 rows=200 width=40) |
| -> HashAggregate (cost=42.32..44.82 rows=200 width=40) |
| Group Key: am.user_id, t.settle_month |
| -> Append (cost=12.96..40.31 rows=268 width=40) |
| -> HashAggregate (cost=12.96..15.56 rows=208 width=40) |
| Group Key: am.user_id, t.settle_month |
| -> Hash Join (cost=1.31..10.92 rows=271 width=11) |
| Hash Cond: (am.erp_wage_ticket_id = t.id) |
| -> Seq Scan on tbl_erp_wage_ticket_amounts am (cost=0.00..8.45 rows=345 width=11) |
| Filter: (user_id IS NOT NULL) |
| -> Hash (cost=1.18..1.18 rows=11 width=8) |
| -> Seq Scan on tbl_erp_wage_tickets t (cost=0.00..1.18 rows=11 width=8) |
| Filter: (status = 2) |
| -> HashAggregate (cost=9.96..10.28 rows=26 width=40) |
| Group Key: am_1.user_id, t_1.settle_month |
| -> Hash Join (cost=1.14..9.75 rows=27 width=11) |
| Hash Cond: (am_1.erp_social_insurance_id = t_1.id) |
| -> Seq Scan on tbl_erp_social_insurance_amounts am_1 (cost=0.00..7.67 rows=267 width=11) |
| Filter: (user_id IS NOT NULL) |
| -> Hash (cost=1.12..1.12 rows=1 width=8) |
| -> Seq Scan on tbl_erp_social_insurances t_1 (cost=0.00..1.12 rows=1 width=8) |
| Filter: (status = 2) |
| -> HashAggregate (cost=8.24..8.57 rows=26 width=40) |
| Group Key: am_2.user_id, t_2.settle_month |
| -> Hash Join (cost=1.10..8.02 rows=30 width=11) |
| Hash Cond: (am_2.erp_provident_fund_id = t_2.id) |
| -> Seq Scan on tbl_erp_provident_fund_amounts am_2 (cost=0.00..6.11 rows=211 width=11) |
| Filter: (user_id IS NOT NULL) |
| -> Hash (cost=1.09..1.09 rows=1 width=8) |
| -> Seq Scan on tbl_erp_provident_funds t_2 (cost=0.00..1.09 rows=1 width=8) |
| Filter: (status = 2) |
| -> HashAggregate (cost=3.12..3.22 rows=8 width=40) |
| Group Key: am_3.user_id, t_3.settle_month |
| -> Hash Join (cost=1.11..3.06 rows=8 width=14) |
| Hash Cond: (am_3.erp_personal_tax_id = t_3.id) |
| -> Seq Scan on tbl_erp_personal_tax_amounts am_3 (cost=0.00..1.68 rows=68 width=14) |
| Filter: (user_id IS NOT NULL) |
| -> Hash (cost=1.10..1.10 rows=1 width=8) |
| -> Seq Scan on tbl_erp_personal_taxs t_3 (cost=0.00..1.10 rows=1 width=8) |
| Filter: (status = 2) |
| SubPlan 1 |
| -> Aggregate (cost=24.94..24.95 rows=1 width=8) |
| -> Hash Left Join (cost=5.67..23.69 rows=500 width=0) |
| Hash Cond: ((work_dates.work_date)::date = pss.edate) |
| Filter: CASE WHEN (ps.id IS NULL) THEN (((date_part('isodow'::text, work_dates.work_date))::integer >= 1) AND ((date_part('isodow'::text, work_dates.work_date))::integer <= 5)) WHEN (pss.id IS NOT NULL) THEN pss.need_work WHEN (ps.legal_holiday AND (lh.id IS NOT NULL)) THEN lh.is_exchange ELSE (((ps.week)::integer & (1 << ((date_part('isodow'::text, work_dates.work_date))::integer - 1))) <> 0) END |
| -> Hash Left Join (cost=4.29..17.10 rows=1000 width=13) |
| Hash Cond: ((work_dates.work_date)::date = lh.edate) |
| -> Function Scan on generate_series work_dates (cost=0.01..10.01 rows=1000 width=8) |
| -> Hash (cost=2.46..2.46 rows=146 width=9) |
| -> Seq Scan on tbl_legal_holidays lh (cost=0.00..2.46 rows=146 width=9) |
| -> Hash (cost=1.36..1.36 rows=1 width=9) |
| -> Seq Scan on tbl_punch_strategy_schedules pss (cost=0.00..1.36 rows=1 width=9) |
| Filter: (punch_strategy_id = ps.id) |
| -> Hash (cost=374.91..374.91 rows=1691 width=288) |
| -> Hash Left Join (cost=286.60..374.91 rows=1691 width=288) |
| Hash Cond: (p_1.id = o2.project_id) |
| -> Hash Left Join (cost=253.06..336.92 rows=1691 width=224) |
| Hash Cond: (p_1.id = o.project_id) |
| -> Hash Left Join (cost=219.53..298.93 rows=1691 width=160) |
| Hash Cond: (p_1.id = pd.project_id) |
| -> Hash Right Join (cost=205.41..278.47 rows=1691 width=124) |
| Hash Cond: (sc.from_project = p_1.id) |
| -> Seq Scan on tbl_sales_contracts sc (cost=0.00..68.46 rows=1746 width=4) |
| -> Hash (cost=184.28..184.28 rows=1691 width=124) |
| -> Seq Scan on tbl_projects p_1 (cost=0.00..184.28 rows=1691 width=124) |
| Filter: (project_status = 3) |
| -> Hash (cost=14.10..14.10 rows=1 width=40) |
| -> Subquery Scan on pd (cost=14.06..14.10 rows=1 width=40) |
| -> GroupAggregate (cost=14.06..14.09 rows=1 width=40) |
| Group Key: t_4.project_id, r.user_id |
| -> Sort (cost=14.06..14.07 rows=1 width=13) |
| Sort Key: t_4.project_id, r.user_id |
| -> Nested Loop Left Join (cost=0.00..14.05 rows=1 width=13) |
| Join Filter: (t_4.id = r.erp_profit_distribute_id) |
| -> Seq Scan on tbl_erp_profit_distributes t_4 (cost=0.00..12.88 rows=1 width=8) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> Seq Scan on tbl_erp_profit_distribute_pcts r (cost=0.00..1.08 rows=8 width=13) |
| -> Hash (cost=31.88..31.88 rows=133 width=68) |
| -> Subquery Scan on o (cost=28.55..31.88 rows=133 width=68) |
| -> HashAggregate (cost=28.55..30.55 rows=133 width=68) |
| Group Key: t_5.project_id |
| -> Hash Right Join (cost=10.69..24.67 rows=518 width=13) |
| Hash Cond: (eipss.erp_sales_outbound_id = t_5.id) |
| -> Seq Scan on tbl_erp_inventory_product_spents eipss (cost=0.00..12.51 rows=551 width=13) |
| -> Hash (cost=8.90..8.90 rows=143 width=8) |
| -> Seq Scan on tbl_erp_sales_outbounds t_5 (cost=0.00..8.90 rows=143 width=8) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> Hash (cost=31.88..31.88 rows=133 width=68) |
| -> Subquery Scan on o2 (cost=28.55..31.88 rows=133 width=68) |
| -> HashAggregate (cost=28.55..30.55 rows=133 width=68) |
| Group Key: t_6.project_id |
| -> Hash Right Join (cost=10.69..24.67 rows=518 width=13) |
| Hash Cond: (eipss_1.erp_sales_outbound_id = t_6.id) |
| -> Seq Scan on tbl_erp_inventory_product_spents eipss_1 (cost=0.00..12.51 rows=551 width=13) |
| -> Hash (cost=8.90..8.90 rows=143 width=8) |
| -> Seq Scan on tbl_erp_sales_outbounds t_6 (cost=0.00..8.90 rows=143 width=8) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> Hash (cost=5.20..5.20 rows=41 width=36) |
| -> Subquery Scan on ecta (cost=4.28..5.20 rows=41 width=36) |
| -> HashAggregate (cost=4.28..4.79 rows=41 width=36) |
| Group Key: t_7.project_id |
| -> Seq Scan on tbl_erp_cost_tickets t_7 (cost=0.00..4.03 rows=50 width=9) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |
| -> Hash (cost=590.04..590.04 rows=42 width=36) |
| -> Subquery Scan on ecctasc (cost=588.78..590.04 rows=42 width=36) |
| -> GroupAggregate (cost=588.78..589.62 rows=42 width=36) |
| Group Key: sc_1.from_project |
| -> Sort (cost=588.78..588.89 rows=42 width=9) |
| Sort Key: sc_1.from_project |
| -> Nested Loop (cost=550.88..587.65 rows=42 width=9) |
| -> Hash Right Join (cost=550.60..574.11 rows=42 width=9) |
| Hash Cond: (cpc.erp_cash_cost_ticket_id = t_8.id) |
| Filter: (cpc.id IS NULL) |
| -> Seq Scan on tbl_erp_cash_cost_ticket_client_project_costs cpc (cost=0.00..20.70 rows=1070 width=8) |
| -> Hash (cost=444.86..444.86 rows=8459 width=13) |
| -> Seq Scan on tbl_erp_cash_cost_tickets t_8 (cost=0.00..444.86 rows=8459 width=13) |
| Filter: (status = 2) |
| -> Index Scan using tbl_sales_contracts_pkey on tbl_sales_contracts sc_1 (cost=0.28..0.32 rows=1 width=8) |
| Index Cond: (id = t_8.sales_contract_id) |
| Filter: (from_project IS NOT NULL) |
| -> Hash (cost=583.92..583.92 rows=200 width=36) |
| -> Subquery Scan on ecctcpc (cost=579.42..583.92 rows=200 width=36) |
| -> HashAggregate (cost=579.42..581.92 rows=200 width=36) |
| Group Key: cpc_1.project_id |
| -> Hash Join (cost=550.60..574.10 rows=1064 width=36) |
| Hash Cond: (cpc_1.erp_cash_cost_ticket_id = t_9.id) |
| -> Seq Scan on tbl_erp_cash_cost_ticket_client_project_costs cpc_1 (cost=0.00..20.70 rows=1065 width=40) |
| Filter: (project_id IS NOT NULL) |
| -> Hash (cost=444.86..444.86 rows=8459 width=4) |
| -> Seq Scan on tbl_erp_cash_cost_tickets t_9 (cost=0.00..444.86 rows=8459 width=4) |
| Filter: (status = 2) |
| -> Hash (cost=9.47..9.47 rows=1 width=36) |
| -> Subquery Scan on eccrta (cost=9.44..9.47 rows=1 width=36) |
| -> GroupAggregate (cost=9.44..9.46 rows=1 width=36) |
| Group Key: sc_2.from_project |
| -> Sort (cost=9.44..9.44 rows=1 width=36) |
| Sort Key: sc_2.from_project |
| -> Nested Loop (cost=0.28..9.43 rows=1 width=36) |
| -> Seq Scan on tbl_erp_cost_convert_tickets t_10 (cost=0.00..1.12 rows=1 width=36) |
| Filter: (status = 2) |
| -> Index Scan using tbl_sales_contracts_pkey on tbl_sales_contracts sc_2 (cost=0.28..8.29 rows=1 width=8) |
| Index Cond: (id = t_10.sales_contract_id) |
| Filter: (from_project IS NOT NULL) |
| -> Hash (cost=23.55..23.55 rows=17 width=36) |
| -> Subquery Scan on esgs (cost=23.16..23.55 rows=17 width=36) |
| -> HashAggregate (cost=23.16..23.38 rows=17 width=36) |
| Group Key: t_11.project_id |
| -> Hash Right Join (cost=7.99..21.95 rows=161 width=13) |
| Hash Cond: (eipss_2.erp_sales_gift_id = t_11.id) |
| -> Seq Scan on tbl_erp_inventory_product_spents eipss_2 (cost=0.00..12.51 rows=551 width=13) |
| -> Hash (cost=7.54..7.54 rows=36 width=8) |
| -> Seq Scan on tbl_erp_sales_gifts t_11 (cost=0.00..7.54 rows=36 width=8) |
| Filter: ((project_id IS NOT NULL) AND (status = 2)) |