2013-05-01 2 views
0

나는 당신의 도움이 저장 절차를 재고 테이블을 업데이 트하고 싶습니다. 처음에는 모든 빌 항목을 임시 테이블에 저장 한 다음 한 번 저장하면 스톡 테이블에서 스톡을 차감하고 Bill_Item 테이블에 저장하고 Temp_Bill_Item 테이블이 삭제됩니다. 내가 커서를 사용으로 보일 것이다 당신의 목적을 위해어떻게하면 SQL 테이블에 루프를 만들 수

enter image description here

답변

2

임시 테이블도 커서 나도이 필요하다 :

update stock_table 
    set qty = qty - bi.qty 
from stock_table st 
    join bill_items bi 
    on bi.item_id = st.item_id 
    and bi.itemcode = st.itemcode; 

이 각 항목이 bill_items 테이블에 한 번만 존재하는 것으로 가정합니다. 같은 상품 ID/itemcode 여러 행이있을 수 있다면 당신은 약간 다른 문이 필요합니다

update stock_table 
    set qty = qty - bi.total_qty 
from stock_table st 
    join (select item_id, itemcode, sum(qty) as total_qty 
     from bill_items 
     group by item_id, itemcode 
) bi 
    on bi.item_id = st.item_id 
    and bi.itemcode = st.itemcode; 

(당신이 연주 샘플 데이터를 게시되지 않은로서 구문 테스트되지 않음)

관련 문제