72 lines
2.0 KiB
Python
72 lines
2.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
import sys
|
|
sys.path.insert(0, 'c:\\Users\\청춘약국\\source\\pharmacy-pos-qr-system\\backend')
|
|
|
|
from db.dbsetup import get_db_session
|
|
from sqlalchemy import text
|
|
|
|
session = get_db_session('PM_DRUG')
|
|
|
|
# 1. CD_BARCODE 테이블 구조
|
|
print('=== CD_BARCODE 테이블 구조 ===')
|
|
result = session.execute(text("""
|
|
SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_NAME = 'CD_BARCODE'
|
|
ORDER BY ORDINAL_POSITION
|
|
"""))
|
|
for row in result:
|
|
print(f' {row.COLUMN_NAME} ({row.DATA_TYPE})')
|
|
|
|
# 2. CD_BARCODE 데이터 샘플
|
|
print('\n=== CD_BARCODE 샘플 데이터 (BASECODE 있는 것) ===')
|
|
result2 = session.execute(text("""
|
|
SELECT TOP 20 *
|
|
FROM CD_BARCODE
|
|
WHERE BASECODE IS NOT NULL AND BASECODE != ''
|
|
"""))
|
|
|
|
columns = result2.keys()
|
|
print(f'컬럼: {list(columns)}')
|
|
print()
|
|
|
|
count = 0
|
|
for row in result2:
|
|
count += 1
|
|
print(f'--- Row {count} ---')
|
|
for col in columns:
|
|
val = getattr(row, col)
|
|
if val:
|
|
print(f' {col}: {val}')
|
|
|
|
if count == 0:
|
|
print('(BASECODE가 있는 레코드 없음)')
|
|
|
|
# BASECODE 없어도 샘플 보기
|
|
print('\n=== CD_BARCODE 전체 샘플 (상위 5개) ===')
|
|
result3 = session.execute(text("""
|
|
SELECT TOP 5 *
|
|
FROM CD_BARCODE
|
|
"""))
|
|
for row in result3:
|
|
print(f'---')
|
|
for col in columns:
|
|
val = getattr(row, col)
|
|
print(f' {col}: {val}')
|
|
|
|
# 3. CD_BARCODE 전체 레코드 수
|
|
print('\n=== CD_BARCODE 통계 ===')
|
|
result4 = session.execute(text("""
|
|
SELECT
|
|
COUNT(*) as total,
|
|
SUM(CASE WHEN BASECODE IS NOT NULL AND BASECODE != '' THEN 1 ELSE 0 END) as with_basecode,
|
|
SUM(CASE WHEN DSTANDARD IS NOT NULL AND DSTANDARD != '' THEN 1 ELSE 0 END) as with_dstandard
|
|
FROM CD_BARCODE
|
|
"""))
|
|
row = result4.fetchone()
|
|
print(f'전체 레코드: {row.total}개')
|
|
print(f'BASECODE 있음: {row.with_basecode}개')
|
|
print(f'DSTANDARD 있음: {row.with_dstandard}개')
|
|
|
|
session.close()
|