check_status.sql 1.46 KB
import pymssql

conn = pymssql.connect(
    server='192.168.1.168',
    port=1433,
    database='wms4_global',
    user='sa',
    password='HHrobot123.'
)
cursor = conn.cursor(as_dict=True)

# 统计头表status=50的所有数据
cursor.execute("""
SELECT
    COUNT(*) as total,
    SUM(CASE WHEN d.status = 50 THEN 1 ELSE 0 END) as detail_50,
    SUM(CASE WHEN d.status = 20 THEN 1 ELSE 0 END) as detail_20,
    SUM(CASE WHEN d.status = 0 THEN 1 ELSE 0 END) as detail_0,
    SUM(CASE WHEN d.status IS NULL THEN 1 ELSE 0 END) as detail_null,
    SUM(CASE WHEN h.status = 50 AND (d.status IS NULL OR d.status != 50) THEN 1 ELSE 0 END) as need_sync
FROM receipt_container_header h
INNER JOIN receipt_container_detail d ON d.receipt_container_id = h.id
INNER JOIN receipt_header r ON r.id = d.receipt_id
WHERE h.status = 50
""")
row = cursor.fetchone()
print('=== 正式库:头表status=50的详情状态分布 ===')
for k, v in row.items():
    print(f'  {k}: {v}')

# 看看各类型的数量分布
cursor.execute("""
SELECT r.type, COUNT(*) as cnt
FROM receipt_container_header h
INNER JOIN receipt_container_detail d ON d.receipt_container_id = h.id
INNER JOIN receipt_header r ON r.id = d.receipt_id
WHERE h.status = 50 AND (d.status IS NULL OR d.status != 50) AND r.type NOT IN ('BMR','DBR','QTR','SCR','CPR','BCPR','YCLR','QTRKD')
GROUP BY r.type
""")
print()
print('=== 待同步的数据(按类型)===')
for row in cursor:
    print(f'  type={row["type"]}: {row["cnt"]}')

conn.close()