我在这个 MySQL 查询中收到了一个奇怪的结果。
我正在尝试返回按月分组的“订单”。
SELECT DATE_FORMAT(date_of_sale, '%b') AS date, SUM(quantity) AS items FROM order_elements JOIN orders ON order_elements.order_ref = orders.order_id WHERE cur_status = 1 AND quantity > 0 AND MONTH(date_of_sale) BETWEEN MONTH(CURDATE() - INTERVAL 8 MONTH) AND MONTH(NOW()) GROUP BY MONTH(date_of_sale) ORDER BY MONTH(date_of_sale) DESC
当我运行查询以获取从现在到8个月前的订单时,我得到以下结果:
==================
| date | items |
==================
| Sep | 95 |
| Aug | 110 |
| Jul | 106 |
| Jun | 110 |
| May | 100 |
| Apr | 130 |
| Mar | 100 |
| Feb | 94 |
| Jan | 7 |
===================
1 月 30 日是我最早订购的日期,也是第一个日期。其他任何 date_of_sale 都晚于 1 月 30 日。
当我从现在到9个月前运行相同的查询时,我没有得到任何结果。
我认为这可能与 9 个月前等于 12 月有关,它落在不同的年份并导致某种问题,但我不确定。有谁知道为什么再搜索一个月不会返回任何结果?是否与一月之后没有数据有关,或者月份是不同年份的?
谢谢