2012-07-04 127 views
-2

我正在准备一个图表,显示当前月份和年份中特定日期的订单数量。我想要每天下的订单数。 我正在显示y轴上的订单数和x轴上的日期。 在我的数据库中,有一个名为“订单”的表格,其中放置了订单数据:订单日期,用户标识,订单价格等。例如,如果7月4日订购了10个订单,则7月5日放置20个订单,等等。如何获得从我的数据库中下的订单数?

我该如何获得本月当天下单的数量?

+0

MySql的?甲骨文?列的名称是什么?你试图运行什么查询? – alfasin

+0

试着把它分解成更小的问题,然后研究每个问题,然后如果你卡在任何部分回来了。我们不能为你做! – Liam

+0

我使用MySQL与PHP和列的名称是user_id,折扣,service_tax,coupon_discount,总计,date_Of_order。并需要总和建议如何获得个人订单的数量 – user1360564

回答

3

我没有得到你的意思正确,但这里有什么我可以从所有的意见收集两种解决方案

  • 你需要计算放置在特定的一天的订单数

如果你只想在特定日期的顺序,你可以使用此查询

select count(*)as "Order Placed" from examp where date_of_order = '2012-01-15'; 
  • 你从examp组需要的顺序列表放置(日期明智)

选择DATE_FORMAT(date_of_order, '%M%Y')为 “日期”,COUNT(*)作为 “放置 令”通过date_of_order;

看到它在这里工作

SqlFiddle

编辑:

现在如果你想单月列表,只需使用一个where子句。

select DATE_FORMAT(date_of_order,'%M %Y') as "DATE",count(*) as "Order Placed" 
from examp 
where month(date_of_order) = '2' group by date_of_order; 
0

只是添加到什么ANKIT说..

当一天分组,如果你的date_of_order包括时间戳,你可能有一个问题:

例如2012-01-01 12:37:01

如果它确实使用DATEADD将时间缩短到半夜,以便您可以按天分组。

DATEADD(DAY, DATEDIFF(DAY, 0, [date_of_order]),0) 

然后,它看起来像:

2012-01-01 00:00:00

所以,你的代码应该是这样的:

SELECT 
    date_of_order, 
    COUNT(date_of_order) 
    FROM examp 
    GROUP BY DATEADD(DAY, DATEDIFF(DAY, 0, [date_of_order]),0) 
+0

非常好的一点......但DATEADD不被Mysql支持(我猜),但是它可以与SQLServer一起使用。 –

+0

啊,谢谢你让我知道Ankit!非常感激。 – TJH

+0

作为DATEADD是sqlserver的功能,并支持在MySQL比什么是替代的MySQL – user1360564

相关问题