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

日期区间商品销售记录查询:MySQL语句及输出格式需求

修正后的SQL查询方案

原SQL的问题点

  • 日期条件逻辑错误:两个>导致筛选的是大于2022-11-29的记录,并非你需要的2022-11-21至2022-11-29区间
  • 字段选择不规范:SELECT tbl_product.*配合GROUP BY product_id在MySQL严格模式下会报错,非聚合字段必须出现在GROUP BY子句中
  • 日期函数使用冗余:如果date字段是datetime类型,直接用字段和日期字符串比较可利用索引,比套date()函数更高效

修正后的SQL语句

SELECT
    product_id,
    product_name,
    category, -- 替换为你实际需要展示的商品字段
    COUNT(*) AS total
FROM tbl_product
WHERE date BETWEEN '2022-11-21' AND '2022-11-29'
GROUP BY product_id, product_name, category -- 所有非聚合字段必须包含在此
ORDER BY total DESC;

补充说明

  1. 若需要排除首尾日期,可将WHERE条件改为date > '2022-11-21' AND date < '2022-11-29'
  2. 明确列出要展示的商品字段并同步添加到GROUP BY中,确保符合SQL规范
  3. ORDER BY total DESC让结果按销量从高到低排序,和你提供的示例图展示逻辑一致
  4. 若商品表和销售记录表分离(比如销售记录存在tbl_sales),需用关联查询,示例如下:
SELECT
    p.product_id,
    p.product_name,
    p.category,
    COUNT(s.sale_id) AS total
FROM tbl_product p
JOIN tbl_sales s ON p.product_id = s.product_id
WHERE s.sale_date BETWEEN '2022-11-21' AND '2022-11-29'
GROUP BY p.product_id, p.product_name, p.category
ORDER BY total DESC;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:52:35