如何基于3张表编写SQL查询生成地区月度销售总额报表?
生成指定销售报表的SQL查询
要得到每个地区各月份的总销售额报表,我们可以通过关联三张表并分组求和实现,具体SQL语句如下:
SELECT a.geographies AS Geography, b.month AS Month, COALESCE(SUM(c.Sales), 0) AS TotalSales FROM 表A a LEFT JOIN 表B b ON a.geographies = b.geographies LEFT JOIN 表C c ON b.stores = c.Stores AND b.month = c.months GROUP BY a.geographies, b.month ORDER BY a.geographies, b.month;
逻辑说明:
- 使用
LEFT JOIN关联三张表,保证即使某地区-月份没有销售数据,也能在报表中显示(销售额为0) - 通过表B的
stores和month字段,关联表C中对应的门店和月份销售数据 - 按地区和月份分组,用
SUM(c.Sales)计算每组的总销售额,COALESCE函数将可能的空值转换为0 - 最后按地区和月份排序,让报表结构更清晰
代入你提供的数据,执行后会得到如下结果:
Geography Month TotalSales Atlanta 1 125 Atlanta 2 50 Miami 1 35
内容的提问来源于stack exchange,提问作者Ozan Tap
相关产品推荐
相关产品推荐

