2013-12-12 52 views
0

我想獲取最近7天內輸入到我們數據庫的訂單數量列表。我試過重複下面的內容,但它變成了關於不正確格式的錯誤消息,所以我想知道什麼是正確的方法。當前7天的SQL計數

要獲得當天的訂單金額我用SELECT COUNT(order_number) FROM orders WHERE created = TO_CHAR(sysdate, 'DD-MON-YYYY');

我想要一個表所示:

Date  Total Orders 
sysdate  500 
sysdate-1 400 
sysdate-2 300 

等在過去的7天。可能嗎?

+0

是否有一個原因,爲什麼創建一個字符串列? – beny23

+0

這是Oracle嗎?是否創建了一個字符串或日期字段?你爲什麼不創建一個範圍查詢創建? –

+0

你能舉個例子嗎? – user2656114

回答

0

我相信下面就爲你工作:

Select created, count(ordernumber) 
    From orders 
Where to_date(created, 'DD-MON-YYYY') between trunc(sysdate-7) and trunc(sysdate) 
Group by created 
Order by to_date(created, 'DD-MON-YYYY') desc 

注意,如果你可以改變它的創建我會認真考慮使用DATE列。

0

你應該提到具體的錯誤。我想創建是一個日期字段,你正試圖比較它與一個字符串。如果是這種情況,這裏是需要的聲明。 TRUNC從日期中刪除時間部分。

SELECT TRUNC(created), COUNT(order_number) 
FROM orders 
WHERE TRUNC(created) BETWEEN TRUNC(sysdate) - 6 AND TRUNC(sysdate) 
GROUP BY TRUNC(created) 
ORDER BY TRUNC(created);