2016-08-17 6 views
0
**Inventory Table**: 

StoreNo Date ProductBarCode ProductQty 
    61 2016-02-28 2017961746012 100 
    61 2016-02-29 2017961746012 100 
    61 2016-03-01 2017961746012 100 
    61 2016-03-02 2017961746012 100 
    61 2016-03-03 2017960624045 100 
    61 2016-03-04 2017961746012 100 
    75 2016-03-04 2017960624045 90 
    61 2016-03-05 2017961746012 100 

판매 표 빼기 방법 :타임 스탬프로 MySQL을 사용 재고 및 판매

StoreNo  Date   ProductBarCode  SaleQty 
     61  2016-02-29 2017961746012   8 
     75  2016-03-04 2017960624045   0 
     61  2016-03-01 2017961746012   2 
     61  2016-03-04 2017961746012   -5 

원하는 출력 : 나는 (INVENTORY + ALL ADDITIONAL PRODUCTS COMING IN) - ALL SOLD PRODUCTS을 계산하여 실제 수를 결정합니다

StoreNo Date  ProductBarCode ProductQty 
    61 2016-02-28 2017961746012 100 
    61 2016-02-29 2017961746012 92 
    61 2016-03-01 2017961746012 90 
    61 2016-03-02 2017961746012 90 
    61 2016-03-03 2017960624045 100 
    61 2016-03-04 2017961746012 95 
    75 2016-03-04 2017960624045 90 
    61 2016-03-05 2017961746012 93 

을 타임 스탬프와 함께 .Inventory 한 달에 한 번 찍은. 그래서 내가 캘린더 테이블과 합류 쇼 그는 날짜와 가치. 만약 내가 subtract from i.qty - s.qty이라면 그날 그날의 판매만으로도 다음날 체크하면 다시 재고가 100을 표시합니다. 누군가가 제안 할 수 있습니까? !!

답변

0
select i.storeno,i.datee,i.productbarcode, 
isnull(i.productqty-(select sum(saleqty) as runningsum from #salestable t where t.date<=i.datee and t.storeno=i.storeno),i.productqty) as tproductqty 
    from #inventory i 
left join 
#salestable s 
on s.storeno=i.storeno 
and s.productbarcode=i.productbarcode 
and s.date=i.datee 

출력 사용되어야 함을 원하는 경우 :

storeno datee  productbarcode productqty 
61  2016-02-28 2017961746012 100 
61  2016-02-29 2017961746012 92 
61  2016-03-01 2017961746012 90 
61  2016-03-02 2017961746012 90 
61  2016-03-03 2017960624045 90 
61  2016-03-04 2017961746012 95 
75  2016-03-04 2017960624045 90 
61  2016-03-05 2017961746012 95 
+0

메시지 209, 수준 16, 상태 1, 줄을 233 모호한 열 이름 'productqty'. 명확한 열 이름 'productqty'. 이 오류가 발생했습니다 – Krish

+0

@Krish : Modified – TheGameiswar

0
SELECT i.StoreNo,i.Date,i.ProductBarCode,(i.ProductQty-s.ProductQty) AS ProductQty 
FROM Inventory i 
LEFT JOIN Sale s ON i.ProductBarCode=s.ProductBarCode 

Sale 테이블의 SaleQty 값이 음수이면이 쿼리는 해당 값을 결과에 추가합니다. 그것이 긍정적이면 그것은 그것을 뺄 것입니다.

당신은 어떤 경우에 값이 다음 차감이 쿼리

SELECT i.StoreNo,i.Date,i.ProductBarCode,(i.ProductQty-ABS(s.ProductQty)) AS ProductQty 
FROM Inventory i 
LEFT JOIN Sale s ON i.ProductBarCode=s.ProductBarCode 
관련 문제