Mysql SQL求和然后计数?

Mysql SQL求和然后计数?,mysql,sql,count,sum,Mysql,Sql,Count,Sum,表1历史库存 列:日期、产品ID、库存、已分配库存 我想计算一个产品的库存-库存分配的次数试试以下方法: 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 我想你想要: SELECT COUNT

表1历史库存

列:日期、产品ID、库存、已分配库存

我想计算一个产品的库存-库存分配的次数试试以下方法:

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
我想你想要:

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;
嗯。这将统计值为负值的产品数量

也许你想要:

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;
工作不太好这是什么意思?您得到的输出是什么?您能否共享示例数据和预期输出?