我想要得到过去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天。有可能吗?
发布于 2013-12-12 23:30:30
我相信以下几点对你来说是可行的:
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请注意,如果您可以更改它,我会认真考虑使用创建的日期列。
发布于 2013-12-12 23:31:07
您应该已经提到了具体的错误。我猜created是一个日期字段,您正在尝试将其与字符串进行比较。如果是这种情况,下面是所需的语句。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);https://stackoverflow.com/questions/20547326
复制相似问题