2016-08-17 7 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 

Желаемая выход:

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 + ALL ADDITIONAL PRODUCTS COMING IN) - ALL SOLD PRODUCTS с отметкой времени. Инвентаризатор принимался один раз в месяц. Я присоединился к календарной таблице и показываю t его даты и ценности. Если бы я был 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

Msg 209, Level 16, State 1, Line 233 Неоднозначное название столбца 'productqty'.Abiguous column name' productqty '. Im получает эту ошибку – Krish

+0

@Krish: Изменено – 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 

Когда значение SaleQty on Sale отрицательное, этот запрос добавит это значение к результату. Если он будет положительным, он вычитает его.

Если вы хотите, чтобы в любом случае значение должно быть вычтено затем использовать этот запрос

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 

 Смежные вопросы

  • Нет связанных вопросов^_^