하나의 테이블에 상품의 재고가 플러스 마이너스 되면서 재고관리를 하는데..
100개의 상품이 있다면
쿼리로 100개의 현재고를 가져오려면 어떻게 해야하나요?? 잡힐듯 말듯... 모르겠네요..
일자 상품 수량
1-1 A 1
1-2 A 2
1-3 A 5
1-5 B 1
1-6 C 2
2-1 B 6
5-1 B 7
5-3 C 1
원하는 결과값
가능하겠죠... 뱅뱅 도네요...
서브쿼리 쓰셔야 할 것 같은데요.
SELECT * FROM ( SELECT * FROM [TABLE] ORDER BY 일자 DESC ) x GROUP BY 상품
일단 '일자' 컬럼에 인덱스가 걸려 있다면, 해당 쿼리 자체는 매우 느리지는 않습니다.
요즘 하드웨어에 비추어보자면, 느리다는 말이 나오려면 수백만건은 되어야 할 것으로 보입니다.
그럼에도 불구하고, 느려지는 것이 걱정되신다면, 적어주신 테이블은 로그성 데이터로 보관하시고, 최종 값을 남겨두는 마스터 테이블을 별도로 구성하시는 것이 좋겠습니다. 재고가 변경될 때에 로그 테이블에는 INSERT, 마스터 테이블에는 REPLACE(또는 UPDATE)로 해주시면 되겠습니다.
답변 감사 꾸뻑~~
특정일자에 특정상품 재고를 알아야 할것 같아서요
마스터에 최종재고가 넣어둔다면... 최종재고는 금방가져오겠지만...
특정일자 재고는.. 테이블 설계를 이렇게 하면 안되는건가 보네요...
row는 수백만개를 예상해야 되거든요
오천개 * 365 = 1825000 + 알파
이를 어쩐다.... 다른 사람들은 재고관리를 어케하는걸까??
다른 사람들은 다 아는걸 나만 모르는 느낌이 드네요.. 하여간 감사합니다.
근디.. 자동입력방지 숭덕광업이라고 나오는데.. 무슨뜻이죠..??
참..
SELECT * FROM ( SELECT * FROM [TABLE] ORDER BY 일자 , 전표 DESC ) x GROUP BY 상품
일자 , 전표 는 ORDER BY
상품은 GROUP BY 에 걸려 있는데..
이경우 인텍스를 어떻게 주어야 젤루 좋은가요??