mysql累积直到满足不同主题的条件

时间:2015-04-13 19:28:11

标签: php mysql

我对此很新,遇到另一个学习曲线。 这是表

id  
item  
date  
quantity

这是目标。 我想知道从第二天开始,数量加起来达到目标​​数字所需的天数。

示例:

目标图5

Day 1:  
item(1), quantity(0)  
item(2), quantity(2)  
item(3), quantity(5)  

Day 2:  
item(1), quantity(4)  
item(2), quantity(7)  
item(3), quantity(0)  

Day 3:  
item(1), quantity(2)  
item(2), quantity(1)  
item(3), quantity(0)

因此item(1)需要3天才能达到5天,item(2)达到5天,item(3)达到5天1天。

在MySQL中完全实现这一点绝对是美妙的。 现在,我只能在PHP中使用计数器执行此操作,这非常原始。

1 个答案:

答案 0 :(得分:0)

SELECT  Item, MIN(DT), MIN(noDays) noDays
FROM    (
    SELECT  i.Item, i.DT, COUNT(DISTINCT i2.DT) noDays, SUM(i2.Quantity) [Sum]
    FROM    #items i
    INNER   JOIN #items i2 ON i2.Item = i.Item AND i.ID >= i2.ID
    GROUP   BY i.Item, i.DT
) main
WHERE [SUM] >= 5
GROUP BY Item

假设您的表按日期排序。