题目:
运行代码及报错
检查了语句及字段,看不出什么问题,麻烦帮忙指点,谢谢
这个SQL前面三个字段的内容不难写出来,关键是后面的那个month_all比较难写。你这里用了partition的预发,这个语法是MySQL8以上才有的,你先看看SELECT VERSION();是不是8以上,如果不是,可以使用我的这个语句试试
SELECT
t1.product_id,
t1.month,
t1.month_total,
(SELECT SUM(t2.quantity)
FROM sale_info t2
WHERE t2.product_id = t1.product_id AND DATE_FORMAT(t2.sale_date, '%Y-%m') <= t1.month) AS month_all
FROM
(SELECT
product_id,
DATE_FORMAT(sale_date, '%Y-%m') AS month,
SUM(quantity) AS month_total
FROM sale_info
GROUP BY product_id, DATE_FORMAT(sale_date, '%Y-%m')) AS t1
ORDER BY t1.product_id, t1.month;