SELECT A.CD_ITEM AS 품목, B.NM_ITEM AS 품목명, B.STND_ITEM AS 규격, A.UM_INV AS 평가단가, MAX(A.YM_STANDARD) AS 재고평가월 FROM MM_AMINVL AS A INNER JOIN (SELECT * FROM MA_ITEM WHERE DT_VALID >= '29991231') AS B ON A.CD_ITEM = B.CD_ITEM WHERE A.YM_STANDARD BETWEEN @S_MONTH AND @E_MONTH GROUP BY A.CD_ITEM, B.NM_ITEM, B.STND_ITEM, A.UM_INV ORDER BY A.CD_ITEM DESC
아이템, 이름, 스펙 이 모두 같고 // 단가와 적용일이 여러개로 납니다..
품목 | 품목명 | 규격 | 평가단가 | 재고평가월 |
AA100 | 모니터 | 에이 | 5050 | 201909 |
AA100 | 모니터 | 에이 | 0 | 201908 |
BB200 | 본체 | 비 | 0 | 201908 |
BB200 | 본체 | 비 | 4550 | 201909 |
두 개가 나오는 품목으로 해당 기간 조회해보면 단가가 2개 나올 거예요.
기준연월을 FROM ~ TO로 조회했기 때문에 단가는 2개일 수 있지요.
예를 들어 AA100 모니터의 경우 8월에는 단가가 0원이었다가 9월에는 5050원이 되었어요.
그런데 조회기간은 8월~9월로 하면 단가는 2개 있으니 단가별로 조회하면 2줄로 나올 거고요.
마스터 테이블로 보이는 MA_ITEM을 조회할 때도 DT_VALID가 29991231 이상인 데이터를 조회하는데
이 부분도 확인 필요하겠네요.
예를들어 8월까지 DT_VALID가 29991231이었다가 9월에 DT_VALID값이 201908로 마스터 종료되었다면
8월 데이터는 조회결과로 나오지 않겠네요.
원하시는 쿼리가 어떤 건가요?