프로그램은 asp.net으로 만들고 있구요
테이블을 입고와 출고의 수량을 기록하는 테이블 prod와
현재 재고의 수량을 기록하는 테이블 stock 이 있습니다.
prod테이블은
serial_no | inv_date | item | product | status1 | quantity | inbound | outbound | remark1 | productID |
1 | 2013-03-05 | 포셔 | Inlay | 출고 | 5100 | 엔젤넷 | NULL | ||
2 | 2013-03-06 | 오링 | Inlay | 출고 | 75600 | 엠더블유상사 | NULL | ||
3 | 2013-03-06 | 오링 | Inlay | 입고 | 509373 | (주)유맥 | NULL | ||
4 | 2013-03-09 | 오링 | Inlay | 출고 | 272160 | 에스아이티 | NULL | ||
5 | 2013-03-10 | 퍼그 | Inlay | 출고 | 20100 | 모노스타 | NULL |
이렇게 미리 넣어둔 데이타가 있구요
stock테이블은
productID | productname | prod_item | prod_standard | prod_size | prod_inventory | prod_unit | update_date | modifiy_date | remark2 | serial_no | |
INLAYBD | 버드 | INLAY | Dry Inlay | 70x13.2 | 102848 | 매 | 00:00.0 | 00:00.0 | 1000 | ||
INLAYFR | 프로그 | INLAY | Dry Inlay | 44x20 | 30480 | 매 | 00:00.0 | 00:00.0 | 주황:34,000 | 1001 | |
INLAYMN | 미니 | INLAY | Dry Inlay | 35x10 | 42182 | 매 | 00:00.0 | 00:00.0 | 1002 | ||
INLAYOR | 오링 | INLAY | Dry Inlay | 94x12 | 66630 | 매 | 00:00.0 | 00:00.0 | 1003 | ||
INLAYPG | 퍼그 | INLAY | Dry Inlay | 44x20 | 0 | 0 | 매 | 00:00.0 | 00:00.0 | 1004 | |
INLAYPS | 포셔 | INLAY \ | Dry Inlay | 92x22 | 213390 | 매 | 00:00.0 | 00:00.0 | 1005 |
이렇게 현재의 재고와 전날의 재고를 저장할 수 있게 구성하였습니다.
프로그램에서 2013년 3월 11일에 버드가 1000개가 출고 됐다고 입력되면
3월 11일 날짜로 prod테이블에 출고 1000개가 기록되고
stock테이블에서는 동일한 버드의 행에서 1000개를 빼고 현재고의 수량을 101848로 저장하게 하고 싶습니다.
저장하면서 새로운 날짜로 기록되게 하려고 합니다.
입고는 반대로 수량을 더하고 새로운 날짜로 저장되게 하려고 하구요
예전 날짜의 재고도 기록해야하기 때문에 일단 이렇게 하려고 하는데
쿼리를 어떻게 짜야할지 모르겠습니다.ㅠㅠ
기본적인 수정삭제 조회 입력만 할 줄 알지...ㅠㅠ
이런 기능 머리로는 잡히는데 구현이 안되네요.
조금만 도와주세요..
읽어주셔서 감사합니다.
Comment 1
-
블랙조
2013.04.12 17:32
트리거를 쓰면 될거 같은데요.
정확히는 모르겠으나 Prod 테이블에 입력이 들어왔을때 stock 테이블의 관련 행을 업데이트 하면 될지 않을까요?
트리거 본문 안에서는 대략 다음과 같이
Update Prod Set 수량 = 수량 + XXX, Date = GetDate() WHERE 조건절
XXX 의 경우는 (case when type = '입고' then +a when type='출고' then -b else 0 end) 이런식이거나
또는 바로 변화수량값을 적용하시어 업데이트 하면 될듯 합니다.