# -*- 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. BaseCode가 있는 제품 수 확인 result = session.execute(text(""" SELECT COUNT(*) as total, SUM(CASE WHEN BaseCode IS NOT NULL AND BaseCode != '' THEN 1 ELSE 0 END) as with_basecode FROM CD_GOODS WHERE GoodsSelCode = 'B' """)) row = result.fetchone() print(f'=== BaseCode 사용 현황 ===') print(f'판매중 전체 제품: {row.total}개') print(f'BaseCode 있는 제품: {row.with_basecode}개') print() # 2. BaseCode가 있는 제품 샘플 (최대 20개) result2 = session.execute(text(""" SELECT TOP 20 DrugCode, GoodsName, BaseCode, POS_BOON FROM CD_GOODS WHERE GoodsSelCode = 'B' AND BaseCode IS NOT NULL AND BaseCode != '' ORDER BY GoodsName """)) print('=== BaseCode 있는 제품 샘플 ===') count = 0 for row in result2: count += 1 print(f'{row.GoodsName}') print(f' DrugCode: {row.DrugCode}') print(f' BaseCode: {row.BaseCode}') print(f' 분류: {row.POS_BOON}') print() if count == 0: print('(BaseCode가 있는 제품이 없습니다)') # 3. 분류별 BaseCode 사용 현황 print('=== 분류(POS_BOON)별 BaseCode 현황 ===') result3 = session.execute(text(""" SELECT POS_BOON, COUNT(*) as total, SUM(CASE WHEN BaseCode IS NOT NULL AND BaseCode != '' THEN 1 ELSE 0 END) as with_basecode FROM CD_GOODS WHERE GoodsSelCode = 'B' GROUP BY POS_BOON HAVING SUM(CASE WHEN BaseCode IS NOT NULL AND BaseCode != '' THEN 1 ELSE 0 END) > 0 ORDER BY with_basecode DESC """)) for row in result3: print(f'분류 {row.POS_BOON}: {row.with_basecode}/{row.total}개') session.close()