Files
ewoooc/scripts/archive/debug_query.py
ogt 1b4f3a7bbe
Some checks failed
CD Pipeline / deploy (push) Failing after 59s
feat: EwoooC 初始化 — 完整專案推版至 Gitea
- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml)
- 部署模式: rsync Python 檔案至 188 → docker restart (volume mount)
- Dockerfile/requirements 變動時自動重建 Docker image
- 部署通知: Telegram (開始/成功/失敗)
- 健康檢查: https://mo.wooo.work/health (最多 5 次重試)
- 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 01:21:13 +08:00

44 lines
2.0 KiB
Python

from app import app, MonthlySummaryAnalysis
from database.manager import DatabaseManager
from sqlalchemy import func, case, desc
# Mocking the filter logic since it's an inner function
def apply_filters_debug(q, year=None, month=None, ignore_year=False):
print(f"Applying filters: year={year}, ignore_year={ignore_year}")
if year and not ignore_year:
print(" -> Filtering by year")
q = q.filter(MonthlySummaryAnalysis.year == year)
if month:
q = q.filter(MonthlySummaryAnalysis.month == month)
return q
db_manager = DatabaseManager()
session = db_manager.get_session()
year = 2025
month = None # Simulating the curl request
print("--- Debugging Div Dist Query ---")
div_dist_q = session.query(
MonthlySummaryAnalysis.division,
func.sum(MonthlySummaryAnalysis.sales_amt_curr).label('sales'),
func.sum(case((MonthlySummaryAnalysis.year == 2024, MonthlySummaryAnalysis.sales_amt_curr), else_=0)).label('sales_2024'),
func.sum(case((MonthlySummaryAnalysis.year == 2025, MonthlySummaryAnalysis.sales_amt_curr), else_=0)).label('sales_2025')
).group_by(MonthlySummaryAnalysis.division).order_by(desc('sales')).limit(12)
div_dist_q = apply_filters_debug(div_dist_q, year=year, ignore_year=True)
print("SQL:", div_dist_q.statement.compile(compile_kwargs={"literal_binds": True}))
results = div_dist_q.all()
print(f"Results Count: {len(results)}")
if results:
print("First result:", results[0])
print("\n--- Debugging Regular Filter (Comparison) ---")
# What happens if we DO filter by year?
div_dist_q_filtered = session.query(
MonthlySummaryAnalysis.division,
func.sum(MonthlySummaryAnalysis.sales_amt_curr).label('sales')
).group_by(MonthlySummaryAnalysis.division).order_by(desc('sales')).limit(12)
div_dist_q_filtered = apply_filters_debug(div_dist_q_filtered, year=year, ignore_year=False)
print(f"Filtered Results Count: {len(div_dist_q_filtered.all())}")