我有 3 个 mysql 表,如下所示:
- 产品(产品编号,名称)
- 订单(order_id,order_date)
- order_detail(order_detail_id, product_id, order_id, quantity)
我想获取过去 3 个月内销售的产品数量的总和,并按产品对它们进行分组,如下所示:
product_id | quantity_sold_last_3_mouth
1 | 50
2 | 156
3 | 78
问题是如何仅连接表 order_detail 中创建最后三个月的行,因为日期仅在表 order 中设置
非常感谢任何想法或帮助
最佳答案
取决于您如何定义“最近 3 个月”:
select
od.product_id
, sum(od.quantity) as quantity_sold_last_3_month
from order o
inner join order_detail od
on o.order_id = od.order_id
where
o.order_date >= last_day(now()) + interval 1 day - interval 3 month #first of month, e.g. Jan 1 from today March 25
#od.order_date >= now()-interval 3 month #exactly 3 months back, e.g. Dec 25 from today
group by od.product_id
关于php - 获取产品最近 3 个月的销售数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43017234/