Mysql 如何同时使用WHERE-BETWEEN和GROUP-BY

Mysql 如何同时使用WHERE-BETWEEN和GROUP-BY,mysql,sql,aggregate,Mysql,Sql,Aggregate,如何在同一查询中使用where-between和group-by SELECT `sales-store-id`, (SUM (`gen-acute-sales-after-returns`) + SUM(`gen- chronic-sales-after-returns`)) AS `totalGenericSales` , (SUM (`eth-acute-sales- after-returns`) + SUM(`eth-chronic-sales-after-retu

如何在同一查询中使用where-between和group-by

  SELECT `sales-store-id`,
  (SUM (`gen-acute-sales-after-returns`) + SUM(`gen- chronic-sales-after-returns`)) 
   AS `totalGenericSales` ,
  (SUM (`eth-acute-sales- after-returns`) + SUM(`eth-chronic-sales-after-returns`) + SUM(`others-sales- 
after-returns`))
 AS `totalEthicalSales` 
 FROM `sales` GROUP BY `sales-store-id` 
WHERE `date-s` BETWEEN '2018-09-01' AND '2018-10-01'
这是一个SQL错误,所以我尝试了替换WHERE,但这也没有正确地对结果进行分组,它只给出了两个具有相同id的结果

   SELECT `sales-store-id`,
      (SUM (`gen-acute-sales-after-returns`) + SUM(`gen- chronic-sales-after-returns`)) 
       AS `totalGenericSales` ,
      (SUM (`eth-acute-sales- after-returns`) + SUM(`eth-chronic-sales-after-returns`) + SUM(`others-sales- 
    after-returns`))
     AS `totalEthicalSales` 
     FROM `sales` GROUP BY `sales-store-id` 
    AND `date-s` BETWEEN '2018-09-01' AND '2018-10-01'
这里缺少什么?

在SQL语句中,WHERE子句应该出现在GROUP BY子句之前

SQL语言定义的子句顺序为:

选择 从…起 参加 哪里 分组 有 订购人 限制MySQL扩展 我们不能在GROUPBY之后使用where子句。 使用此查询

SELECT `sales-store-id`,
  (SUM (`gen-acute-sales-after-returns`) + SUM(`gen- chronic-sales-after-returns`)) 
   AS `totalGenericSales` ,
  (SUM (`eth-acute-sales- after-returns`) + SUM(`eth-chronic-sales-after-returns`) + SUM(`others-sales- 
after-returns`))
 AS `totalEthicalSales` 
 FROM `sales` 
其中日期-s介于“2018-09-01”和“2018-10-01”之间
按销售商店id分组这些关键字的书写顺序如下:

选择、来自、加入、位置、分组依据、拥有、订购依据


GROUP BY应该是最后一个。GROUP BY应该始终位于条件之后SELECT->from->Join->Where->GROUP BY->Having->Order->LIMIT我们在这里提供示例数据和预期结果。为什么?工作地点和地点不同。。基于不存在的示例数据或预期结果,您无法确定topicstarter是否需要WHERE筛选器或具有..的GROUP BY筛选器,通常不需要。这是SQL语言定义的顺序。@GordonLinoff谢谢-我已经更正了答案中的术语。
 SELECT `sales-store-id`,
        (SUM (`gen-acute-sales-after-returns`) + SUM(`gen- chronic-sales-after-returns`)) 
     AS `totalGenericSales` ,
        (SUM (`eth-acute-sales- after-returns`) + SUM(`eth-chronic-sales-after-returns`) 
       + SUM(`others-sales-after-returns`)) 
     AS `totalEthicalSales`
   FROM `sales`
  WHERE `date-s` BETWEEN '2018-09-01' AND '2018-10-01'
  GROUP BY `sales-store-id`;