SELECT SUM(XSJE / 1000) AS XSJE, SUM(SL) AS SL, LRRQ
FROM MTGL_C_KPXX
WHERE (LRRQ BETWEEN ? AND ?)
-- 缺少 GROUP BY LRRQ,LRRQ 既不在聚合函數中也不在 GROUP BY 中
SELECT
SUM(XSJE / 1000) AS XSJE,
SUM(SL) AS SL,
DATE_FORMAT(LRRQ, '%Y-%m-%d') AS dt -- MySQL 日期格式化
FROM MTGL_C_KPXX
WHERE LRRQ BETWEEN ? AND ?
GROUP BY dt
ORDER BY dt;
SELECT 列表中未包含在聚合函數 (SUM, COUNT, MAX...) 中的列,必須出現在 GROUP BY 子句中。
LRRQ 是日期時間類型,直接 GROUP BY LRRQ 會按毫秒分組,需格式化為日期 DATE_FORMAT(LRRQ, '%Y-%m-%d') (MySQL) 或 CONVERT(date, LRRQ) (SQL Server) / TRUNC(LRRQ) (Oracle) 後再分組。dt 可在 GROUP BY 和 ORDER BY 中使用。若需統計每天銷售額與數量,上述 SQL 即可;若原表 LRRQ 已為純日期類型,可直接 GROUP BY LRRQ。