以下是更新后的 SQL 查询语句,用于查询从当前时间往前一年内每个月的销售额、卖出商品数和新增用户数,即使该月没有任何销售或新增也会被显示出来:

SELECT 
    DATE_FORMAT(date_table.month, '%Y-%m') AS month,
    IFNULL(SUM(o.total), 0) AS sales_amount,
    IFNULL(SUM(oi.quantity), 0) AS sold_items,
    IFNULL(COUNT(u.id), 0) AS new_users
FROM 
    (SELECT 
        DATE_FORMAT((CURDATE() - INTERVAL (a.a) MONTH), '%Y-%m') AS month
    FROM 
        (SELECT 0 AS a UNION SELECT 1 AS a UNION SELECT 2 AS a UNION SELECT 3 AS a UNION SELECT 4 AS a UNION SELECT 5 AS a UNION SELECT 6 AS a UNION SELECT 7 AS a UNION SELECT 8 AS a UNION SELECT 9 AS a UNION SELECT 10 AS a UNION SELECT 11 AS a) AS a) date_table
LEFT JOIN 
    orders o ON DATE_FORMAT(o.created_at, '%Y-%m') = date_table.month
        AND o.created_at BETWEEN DATE_SUB(NOW(), INTERVAL 1 YEAR) AND NOW()
LEFT JOIN 
    order_items oi ON o.id = oi.order_id
LEFT JOIN 
    users u ON DATE_FORMAT(u.created_at, '%Y-%m') = date_table.month
        AND u.created_at BETWEEN DATE_SUB(NOW(), INTERVAL 1 YEAR) AND NOW()
GROUP BY 
    month;

这个查询语句将只返回过去一年内的 12 个月份的数据。如果您需要查询其他的时间范围或者月份数量,请告诉我,我可以为您修改查询语句。

SQL 查询过去一年每月销售额、卖出商品数和新增用户数

原文地址: https://www.cveoy.top/t/topic/ol4g 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录