我想获得过去7天输入数据库的订单数量列表。我试过重复下面的内容,但它变成了一些关于格式不正确的错误信息,所以我想知道什么是正确的方法。
要获取当天的订单金额,请使用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 :(得分: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列创建。
答案 1 :(得分: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);