我想显示特定日期的数据,例如,一天的总收入,或一周的总收入等等。
我不知道怎么做,我只创建了一个显示总数的查询,但我还需要它来显示特定的日期。正如我上面所说的那样。
数据库表中的数据类型为TIMESTAMP,格式为2014-08-28 04:08:23。
这是我的查询。
$qry = "SELECT sum(order_detail.quantity*order_detail.price) as chenes, orders.date
FROM order_detail
LEFT JOIN orders
ON order_detail.orderid=orders.serial";
我知道我会使用WHERE子句但在那之后,我不知道接下来该做什么。请帮帮我谢谢。
答案 0 :(得分:1)
您可以将查询表达为:
SELECT sum(od.quantity*od.price) as chenes, o.date
FROM order_detail od JOIN
orders o
ON od.orderid = o.serial
WHERE date(o.date) = YOURDATEHERE
但是,这种格式使MySQL很难在date
列上使用索引。更好的代表是:
SELECT sum(od.quantity*od.price) as chenes, o.date
FROM order_detail od JOIN
orders o
ON od.orderid = o.serial
WHERE o.date >= YOURDATEHERE and o.date < YOURDATEHERE + interval 1 day;
这将允许MySQL利用date
上的索引。
请注意,我已将left join
更改为join
。如果order_detail
记录没有到order
表的有效链接,那么您的数据库设计会很糟糕。此外,您希望在第二个表上进行过滤,这会将外部联接转换为内部联接。