2014-06-20 121 views
0

我使用的是mysql,并有一个表格用于记录库存订单。该表(简化)如下:历史库存天数

||id|ordered_date |Date |itemid| status || 
||1 |Jan-4  |Jan-4 | a | ordered || 
||2 |Jan-6  |Jan-6 | b | ordered || 
||3 |Jan-8  |Jan-8 | c | ordered || 
||4 |Jan-8  |Jan-9 | c | shipped || 
||4 |Jan-6  |Jan-9 | b | shipped || 
||4 |Jan-4  |Jan-10| a | shipped || 

我们要的是总人数每天订单尚未发货的,所以这样的事情:

date | inventory 
Jan-4 | 1 
Jan-5 | 1 
Jan-6 | 2 
Jan-7 | 2 
Jan-8 | 3 
Jan-9 | 1 
Jan-10| 0 

我可以找到在某一天用这样的查询未发货的订单总数:

select count(*) from inventory where 
    status = "Shipped" AND 
    date > "Jan-8" AND 
    ordered_date <= "Jan-8" 

但是我们需要订单,为所有天数。而上述查询有一个问题,它不会查找尚未发货的订单。所以,任何帮助将不胜感激。

(假定日期列是一个有效的SQL日期)

回答

2

试试这个:

SELECT date, COUNT(*) 
FROM inventory 
WHERE status != 'shipped' 
GROUP BY date ORDER BY date; 
+1

+1我觉得,这是可行的 – diEcho

+0

这一工程!比我想象的要容易得多。我不知道我在想什么。谢谢。 –