如何在MySQL中显示某一天的订单总数

时间:2009-07-04 19:45:58

标签: mysql

我想知道如何显示某一天的订单。

例如:

我想显示今天的订单。

我的MySQL数据库包含以下表格:

1)订单
2)orders_statuses

订单下,我有以下字段:
1)orders_id
2)orders_placed_date

orders_statuses 下,我有以下字段:
1)status_id
2)status_name

每当下新订单时,它会获得默认status_id = 3(意味着status_name =订单正在等待)

所以,如果今天下达了3个订单,那么所有这些订单都将具有相同的status_id,即3.(订单待定)

现在,我应该使用什么查询来计算今天,本周和本月的订单?

以下是我选择购物车中所有订单的查询:

SELECT   order_id, order_placed_date FROM  orders

上述查询的结果:

订单ID ----订购日期
1 --- 12/30/2008 12:06:24上午 2 --- 2/3/2009 1:57:17上午 3 --- 2/3/2009 1:58:27 AM 4 --- 5/3/2009 1:58:48上午 5 --- 6/3/2009 2:00:31 AM
6 --- 7/3/2009 2:01:47 AM 7 --- 7/3/2009 2:02:31 AM 9 --- 7/4/2009 2:21:18 PM
10 --- 7/4/2009 2:21:36 PM
11 --- 7/4/2009 2:22:18 PM
12 --- 7/4/2009 2:23:29 PM
13 --- 7/4/2009 2:24:24 PM

我想要的是获得今天下达的订单总数。

由于今天的日期是2009年7月4日,从上面的结果可以看出7月4日有5个订单。

在今天的情况下,我应该使用什么查询来获取某一天的订单总数。

更新:已解决

我使用了Adam和colithium querys来得到答案:

以下是我使用的内容:


SELECT   COUNT(order_placed_date)
FROM     va_orders
WHERE    DATE(order_placed_date) = curdate();

效果很好:)

2 个答案:

答案 0 :(得分:2)

假设您在ORDERS_STATUSES中有一个名为ORDERS_ID的外键:

select o.orders_id
       , o.orders_placed_date
from   orders o
       inner join orders_statuses os
       os.orders_id = o.orders_id
    and
       os.status_id = 3
where  date(o.orders_placed_date) = curdate()

答案 1 :(得分:1)

获取某一天的订单数量:

SELECT COUNT(*) FROM orders WHERE order_placed_date = @DayYouWant

从今天/本周/本月获得订单:

SELECT order_id, order_placed_date FROM orders WHERE order_placed_date BETWEEN @StartDate AND @EndDate

如果您只想要状态为3的订单,则需要使用状态表加入并将该条件添加到WHERE子句中。