SQL SUM тогда считать?

0

Таблица History_Inventory

Столбец: Дата, Prod_ID, WHStock, Stock_Allocated

Я хочу подсчитать количество раз, когда продукты (WHstock - акции распределены) <= 0 между датой x и y, где Prod_ID = "id1"

Есть идеи?

Я шел по

SELECT Count 'Prod_ID'
     , sum(('WHStock'-'Stock_Allocated')) as Stock 
  from Historic_Inventory 
 WHERE 'Date' Between '2018-04-01'and '2018-08-01'
   AND Stock <= 0

Но не очень хорошо работает..

  • 3
    not working very well что это значит? Какой выход вы получаете? Можете ли вы поделиться примерами данных и ожидаемым результатом?
Теги:
count
sum

2 ответа

0

Я думаю, вы хотите:

SELECT COUNT(*)
FROM (SELECT Prod_ID, SUM(WHStock - Stock_Allocated) as Stock 
      FROM Historic_Inventory 
      WHERE 'Date' Between '2018-04-01' and '2018-08-01'
      GROUP BY Prod_ID
     ) x
WHERE Stock <= 0;

Хммм. , , это подсчитывает количество продуктов, значение которых отрицательное.

Возможно, вы хотите:

select hi.*
       (@stock := @stock + (WHStock - Stock_Allocated)) as stock
from (select hi.*
      from historic_inventory hi
      where prod_id = ?
      order by date
     ) hi cross join
     (select @stock := 0) params
having stock < 0;
0

Попробуй это:

SELECT Count(*)
FROM
(SELECT SUM(('WHStock'-'Stock_Allocated')) AS Stock 
FROM Historic_Inventory 
WHERE 'Date' Between '2018-04-01'and '2018-08-01') AS t
WHERE t.Stock <= 0

Ещё вопросы

Сообщество Overcoder
Наверх
Меню