2014-06-20 169 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

這一工程!比我想象的要容易得多。我不知道我在想什麼。謝謝。 –