import psycopg2 from psycopg2.extras import RealDictCursor conn = psycopg2.connect('host=192.168.0.61 port=55432 dbname=njts_acct user=njts_app password=njts_app2025') cur = conn.cursor(cursor_factory=RealDictCursor) # 查看 7月 Entry#358, 361 和 8月 Entry#359, 362 的详细信息 cur.execute(''' SELECT je.journal_entry_id, je.entry_date, je.description, je.parent_entry_id, jl.account_id, a.account_code, a.account_name, jl.debit, jl.credit, jl.tax_rate, jl.tax_direction FROM journal_entries je LEFT JOIN journal_lines jl ON je.journal_entry_id = jl.journal_entry_id LEFT JOIN accounts a ON jl.account_id = a.account_id WHERE je.journal_entry_id IN (358, 361, 359, 362) AND je.is_deleted = false ORDER BY je.journal_entry_id, jl.journal_line_id ''') rows = cur.fetchall() print("=" * 120) print("7月/8月の問題のあるEntry詳細情報") print("=" * 120) for row in rows: parent_info = f"parent_id={row['parent_entry_id']}" if row['parent_entry_id'] else "parent_id=None (!)問題" print(f"Entry#{row['journal_entry_id']}: {row['entry_date']} | {row['account_code']} {row['account_name']:20s} | 借: {row['debit']:>10,.0f} 貳: {row['credit']:>10,.0f} | {parent_info}") print(f" Description: {row['description']}") print() conn.close()