You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL使用GROUP BY与JOIN按菜品类型统计酒吧采购总额求助

按菜品类型统计采购总额SQL实现

实现逻辑

  • 采用条件聚合统计不同类型菜品的采购额,通过CASE WHEN判断drink_food表中的菜品类型,分别累加对应采购金额
  • 修正分组字段与关联逻辑,保证统计结果准确符合预期

可用查询代码

SELECT  
    b.name AS branch_name,
    SUM(CASE WHEN df.type = 'food' THEN IFNULL(ph.total, 0) ELSE 0 END) AS food_total,
    SUM(CASE WHEN df.type = 'drink' THEN IFNULL(ph.total, 0) ELSE 0 END) AS drink_total,
    SUM(IFNULL(ph.total, 0)) AS total,
    SUM(IFNULL(ph.gratuity, 0)) AS gratuity
FROM  branches b
LEFT JOIN drink_requests dr  ON b.id = dr.branch_id
LEFT JOIN drink_food df  ON df.id = dr.drink_id
LEFT JOIN bar_purchase_history ph  ON ph.request_id = dr.id
GROUP BY  b.id, b.name;

优化说明

  • 加入IFNULL判断处理空值,避免无采购记录时统计结果返回NULL
  • 将原SQL的内连接改为左连接,保证所有门店都会出现在结果中,即使对应没有采购记录也会显示金额为0
  • 分组字段修改为门店表的主键id和门店名称,兼容严格SQL模式的语法要求,不会出现分组非法报错

内容的提问来源于stack exchange,提问作者sandip bharadva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:15:08