我想知道如何显示某一天的订单。
例如:
我想显示今天的订单。
我的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();
效果很好:)
答案 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子句中。