| Limit (cost=34.71..34.71 rows=1 width=165) |
| -> Sort (cost=34.71..34.71 rows=1 width=165) |
| Sort Key: b.bill_date DESC, b.object_type, b.object_id DESC, b.event_type, b.event_id DESC |
| -> Nested Loop Left Join (cost=12.84..34.70 rows=1 width=165) |
| Join Filter: ((v.object_type = b.object_type) AND (v.object_id = b.object_id) AND ((COALESCE((v.event_type)::integer, 0)) = b.event_type) AND ((COALESCE(v.event_id, 0)) = b.event_id)) |
| Filter: (((count(*) FILTER (WHERE (v.status = 1))) IS NULL) OR ((count(*) FILTER (WHERE (v.status = 1))) = 0)) |
| -> Subquery Scan on b (cost=8.68..29.36 rows=1 width=117) |
| Filter: ((b.object_type <> ALL ('{20,20018}'::integer[])) OR b.have_invoice OR (SubPlan 1)) |
| -> GroupAggregate (cost=8.68..8.72 rows=1 width=125) |
| Group Key: t.id, e.id |
| -> Sort (cost=8.68..8.69 rows=1 width=79) |
| Sort Key: t.id, e.id |
| -> Nested Loop Left Join (cost=4.75..8.67 rows=1 width=79) |
| -> Hash Join (cost=4.60..6.19 rows=1 width=75) |
| Hash Cond: (e.erp_other_income_ticket_id = t.id) |
| -> Seq Scan on tbl_erp_other_income_ticket_bank_ins e (cost=0.00..1.46 rows=31 width=26) |
| Filter: ((settle_at IS NOT NULL) AND (amount > '0'::numeric) AND (amount > '0'::numeric)) |
| -> Hash (cost=4.59..4.59 rows=1 width=53) |
| -> Hash Right Join (cost=3.41..4.59 rows=1 width=53) |
| Hash Cond: (h.erp_other_income_ticket_id = t.id) |
| -> Seq Scan on tbl_erp_other_income_ticket_handlers h (cost=0.00..1.14 rows=14 width=8) |
| -> Hash (cost=3.40..3.40 rows=1 width=49) |
| -> Seq Scan on tbl_erp_other_income_tickets t (cost=0.00..3.40 rows=1 width=49) |
| Filter: ((verify_at IS NOT NULL) AND (verify_at >= '2026-07-01 00:00:00+08'::timestamp with time zone) AND (verify_at <= '2026-07-31 23:59:59+08'::timestamp with time zone) AND (status = 2)) |
| -> Index Scan using tbl_users_pkey on tbl_users u (cost=0.14..2.45 rows=1 width=8) |
| Index Cond: (id = h.user_id) |
| SubPlan 1 |
| -> Nested Loop (cost=0.29..20.63 rows=1 width=0) |
| Join Filter: (r.taxonomy_id = tt.id) |
| -> Index Scan using tbl_term_taxonomy_relationships_object_id_term_id_idx on tbl_term_taxonomy_relationships r (cost=0.29..11.58 rows=1 width=4) |
| Index Cond: ((object_id = b.object_id) AND (term_id = 18)) |
| Filter: (((b.object_type = 20) AND (object_type = 7)) OR ((b.object_type = 20018) AND (object_type = 11))) |
| -> Seq Scan on tbl_term_taxonomies tt (cost=0.00..8.99 rows=5 width=4) |
| Filter: ((serial_no)::text = ANY ('{221106,640301,640302,640303,600704}'::text[])) |
| -> HashAggregate (cost=4.16..4.49 rows=26 width=36) |
| Group Key: v.object_type, v.object_id, COALESCE((v.event_type)::integer, 0), COALESCE(v.event_id, 0) |
| -> Seq Scan on tbl_voucher_gen_items v (cost=0.00..2.81 rows=54 width=22) |
| Filter: (ledger_id = 1) |