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

SQL统计每场赛事周边销售额及总汇总行,现有代码结果不符求排错

错误原因排查

你的现有SQL存在3个核心问题,无法匹配预期输出:

  • 仅实现了按比赛日期分组统计单场周边销售总额,缺少所有赛事总销售额的汇总行,需要用分组汇总语法实现额外的总计行
  • 日期格式不匹配,原game表存储的gameDate为DD-MM-YYYY格式,预期输出为YYYY-MM-DD格式,未做日期转换
  • merchandise表的mPrice字段带$货币符号,属于字符串类型,直接参与乘法计算会触发类型错误,需要先处理为数值类型再计算
修正后的SQL示例(MySQL环境)
SELECT 
  IFNULL(DATE_FORMAT(STR_TO_DATE(g.gameDate, '%d-%m-%Y'), '%Y-%m-%d'), 'All Merchandise') AS Games,
  FORMAT(SUM(CAST(REPLACE(m.mPrice, '$', '') AS DECIMAL(10,2)) * s.mquantity), 'C') AS Total
FROM salesTransaction s
JOIN game g ON g.gameId = s.gameId
JOIN merchandise m ON m.mId = s.mId
GROUP BY g.gameDate WITH ROLLUP;

逻辑说明

  • 用STR_TO_DATE把原表字符串格式的日期转成日期类型,再用DATE_FORMAT输出为要求的YYYY-MM-DD格式
  • 用REPLACE去掉mPrice的$符号,转成十进制数值后再和购买数量相乘计算单条交易金额
  • 用WITH ROLLUP在分组统计的基础上额外生成总计行,再用IFNULL把总计行的空日期值替换为要求的All Merchandise

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:57:04