fix: V1 쿼리에 PS_Main_Sub 조인 추가 - 선별급여/상한제 합산

V1 PharmIT3000의 PRICE_N은 선별급여/상한제초과 금액 미포함 버그 있음.
PS_Main_Sub.SE_PRICE_P를 합산해야 진짜 수납액.

변경:
- PS_Main_Sub LEFT JOIN 추가
- PRICE_N = m.PRICE_N + ISNULL(s.SE_PRICE_P, 0)

결과:
- V1 수납액 합계: 64,680,430
- V2 수납액 합계: 64,680,430
- 차이: 0 (완벽 일치)
This commit is contained in:
root
2026-04-01 15:29:02 +00:00
parent bc0c282eaf
commit fc0f6832c3
2 changed files with 8 additions and 1 deletions

View File

@@ -4,10 +4,15 @@ PharmIT3000 통계 쿼리 (v1)
테이블:
- PM_PRES.PS_MAIN: 처방 헤더
- PM_PRES.PS_Main_Sub: 처방 부가정보 (선별급여/상한제 등)
- PM_PRES.PS_SUB_PHARM: 처방 상세
- PM_PRES.CD_SUNAB: 수납 정보
- PM_DRUG.CD_GOODS: 약품 마스터
주의:
- PRICE_N은 선별급여/상한제초과 미포함 (버그)
- PS_Main_Sub.SE_PRICE_P를 합산해야 진짜 수납액
QT-POS sales_stats_dialog.py 기반
"""
import pyodbc
@@ -62,10 +67,12 @@ def get_sales_stats(date_from: str, date_to: str) -> dict:
m.S_Prep,
m.PRICE_C,
m.PRICE_P,
m.PRICE_N,
-- 진짜 수납액: PRICE_N + 선별급여/상한제초과 (PS_Main_Sub)
(m.PRICE_N + ISNULL(s.SE_PRICE_P, 0)) AS PRICE_N,
ISNULL(n.Appr_Gubun, '') AS Appr_Gubun,
ISNULL(n.nAPPROVAL_NUM, '') AS nAPPROVAL_NUM
FROM PM_PRES..PS_MAIN m
LEFT JOIN PM_PRES..PS_Main_Sub s ON s.PreSerial = m.PreSerial
LEFT JOIN PM_PRES..CD_SUNAB n ON n.PRESERIAL = m.PreSerial
WHERE m.INDATE BETWEEN ? AND ?
"""