修正
This commit is contained in:
85
check_db_records.py
Normal file
85
check_db_records.py
Normal file
@@ -0,0 +1,85 @@
|
||||
import sys
|
||||
sys.path.insert(0, '/app')
|
||||
|
||||
from app.core.database import get_connection
|
||||
|
||||
from_date = "2025-06-01"
|
||||
to_date = "2025-06-30"
|
||||
account_id = 501
|
||||
|
||||
print("=" * 80)
|
||||
print("【検索条件】")
|
||||
print(f" 期間: {from_date} ~ {to_date}")
|
||||
print(f" 科目: {account_id} (費用金)")
|
||||
print("=" * 80)
|
||||
|
||||
with get_connection() as conn:
|
||||
with conn.cursor() as cur:
|
||||
# ステップ 1: journal_lines に account_id 501 のレコードがあるか
|
||||
print("\n【ステップ 0】account_id 501 を持つ journal_lines")
|
||||
sql0 = "SELECT COUNT(*) as cnt FROM journal_lines WHERE account_id = %s"
|
||||
cur.execute(sql0, [account_id])
|
||||
result0 = cur.fetchone()
|
||||
print(f" 全体件数: {result0['cnt']}")
|
||||
|
||||
# ステップ 2: journal_lines に account_id 501 で期間限定のレコードがあるか
|
||||
print("\n【ステップ 0.5】account_id 501 で期間限定のレコード")
|
||||
sql0_5 = """
|
||||
SELECT COUNT(*) as cnt FROM journal_lines jl
|
||||
WHERE jl.account_id = %s
|
||||
AND jl.journal_entry_id IN (
|
||||
SELECT journal_entry_id FROM journal_entries
|
||||
WHERE entry_date >= %s AND entry_date <= %s
|
||||
)
|
||||
"""
|
||||
cur.execute(sql0_5, [account_id, from_date, to_date])
|
||||
result0_5 = cur.fetchone()
|
||||
print(f" 期間内件数: {result0_5['cnt']}")
|
||||
|
||||
# ステップ 3: その journal_entry_id のリスト
|
||||
print("\n【ステップ 1】該当する journal_entry_id のリスト")
|
||||
sql1 = """
|
||||
SELECT DISTINCT journal_entry_id
|
||||
FROM journal_lines
|
||||
WHERE account_id = %s
|
||||
AND journal_entry_id IN (
|
||||
SELECT journal_entry_id FROM journal_entries
|
||||
WHERE entry_date >= %s AND entry_date <= %s
|
||||
)
|
||||
"""
|
||||
cur.execute(sql1, [account_id, from_date, to_date])
|
||||
entry_ids = [row['journal_entry_id'] for row in cur.fetchall()]
|
||||
print(f" 該当 journal_entry_id: {entry_ids}")
|
||||
|
||||
if entry_ids:
|
||||
print("\n【ステップ 2】これらの仕訳の詳細")
|
||||
placeholders = ','.join(['%s'] * len(entry_ids))
|
||||
sql2 = f"""
|
||||
SELECT
|
||||
journal_entry_id, entry_date, description, revision_count, is_latest
|
||||
FROM journal_entries
|
||||
WHERE journal_entry_id IN ({placeholders})
|
||||
"""
|
||||
cur.execute(sql2, entry_ids)
|
||||
for row in cur.fetchall():
|
||||
print(f" • ID {row['journal_entry_id']}: {row['entry_date']} - {row['description']} (v{row['revision_count']}, latest={row['is_latest']})")
|
||||
|
||||
# オリジナルのクエリ
|
||||
print("\n【ステップ 3】修正履歴を含まない(is_latest = true)")
|
||||
sql3 = """
|
||||
SELECT COUNT(*) as cnt FROM journal_entries je
|
||||
WHERE je.is_deleted = false
|
||||
AND je.is_latest = true
|
||||
AND je.entry_date >= %s
|
||||
AND je.entry_date <= %s
|
||||
AND je.journal_entry_id IN (
|
||||
SELECT DISTINCT journal_entry_id
|
||||
FROM journal_lines
|
||||
WHERE account_id = %s
|
||||
)
|
||||
"""
|
||||
cur.execute(sql3, [from_date, to_date, account_id])
|
||||
result3 = cur.fetchone()
|
||||
print(f" 件数: {result3['cnt']}")
|
||||
|
||||
print("\n" + "=" * 80)
|
||||
Reference in New Issue
Block a user