每天对所有订单计数的一个mysql查询

时间:2016-04-30 14:34:47

标签: php mysql

我正在尝试创建通用查询,以便在日期选择中生成各种报告。

例如,

最近7天的订单价值,我需要跟随输出。

订单日期订单价值

2014-05-15 - 700
2014-05-16 - 0
2014-05-17 - 100
2014-05-18 - 0
2014-05-19 - 0
2014-05-20 - 0
2014-05-21 - 200

如果没有为日期显示订单数据,那么应该在该日期显示0。

1 个答案:

答案 0 :(得分:0)

如果订单价值是当天的订单数量,那么它应该在MySQL表中默认为0。如果它不是错误并且应该修复但是我们假设您无法更改它,在这种情况下,您可以使用package com.mycompany.repository @Repository public interface OrderRepository extends CrudRepository<Order, Integer> { @Query("SELECT o from Order o " + "WHERE o.id = COALESCE(:#{#filter.id},o.id) " + "AND o.status = COALESCE(:#{T(com.mycompany.enums.Status).#filter.statusName},o.status)") public List<Order> getFilteredOrders(@Param(value = "filter") Filter filter); } 函数在MySQL查询级别执行此操作。

假设您的表格为COALESCEorders_stats为整数。

order_value

此查询的工作方式与:

相同
SELECT `order_date`, COALESCE(`order_value`, 0) as `order_value` FROM `orders_stats`;

如果SELECT `order_date`, `order_value` FROM `orders_stats`; order_value,则0的差异将设置为null

有关COALESCE的更多信息,请访问mysql.comw3resource.com