mysql - 错误 GROUP BY Dates MysQL

标签 mysql sql date group-by

我正在尝试按日期对 2 个不同的表进行分组。但是,出现问题,因为我无法按日期分组。

我有 2 个表,第一个是“预算”,第二个是“按地区划分的销售业绩” 想法是显示所有月份(12 个月)的预算 每个月我们都有数据,我们将看到每个特定月份的销售额。

SELECT  
      BB.RG,
      BB.YEAR, 
      DATE_FORMAT( BB.MONTH, '%M' ) AS `MONTH`,
      SPR.Bookings,
      SPR.`Bookings PY`,
      SPR.Billing,
      SPR.`Billing PY`,
      SPR.`GP Amt`, 
      SPR.`GP Amt PY`, 
      SUM( BB.BUDGET ) AS BUDGET 
   FROM
      BRANCH_BUDGET BB
         LEFT JOIN  Sales_Performance_Region SPR
            ON BB.MONTH = SPR.MONTH
   WHERE
          BB.RG =  'FE'
      AND SPR.RG =  'FE'
      AND BB.YEAR =  '2018'
   GROUP BY
      BB.MONTH 

上面你可以看到代码。由于我只有 2 个月的数据,所以没有显示 12 个月,而是显示了 1 月和 2 月。

我希望这个问题是有道理的。你能指导我吗?

最佳答案

每当您在 WHERE 语句或 SELECT 语句 you will need to treat everything inside the select statement as an aggregate 内的任何其他聚合函数之后调用 GROUP BY 时,否则您将面临问题:

在您的代码中:

SELECT  `BRANCH_BUDGET`.`RG` ,  
        `BRANCH_BUDGET`.`YEAR` AS  `YEAR` , 
        `DATE_FORMAT(  `BRANCH_BUDGET`.`MONTH` ,  '%M' ) AS  `MONTH` , 
        `Sales_Performance_Region`.`Bookings` ,  
        `Sales_Performance_Region`.`Bookings PY` ,  
        `Sales_Performance_Region`.`Billing` , 
        `Sales_Performance_Region`.`Billing PY` ,  
        `Sales_Performance_Region`.`GP Amt` ,  
        `Sales_Performance_Region`.`GP Amt PY` , 
        SUM( `BRANCH_BUDGET`.`BUDGET` ) AS  `BUDGET` 
FROM (
      `BRANCH_BUDGET` 
       LEFT JOIN  `Sales_Performance_Region` ON (  `BRANCH_BUDGET`.`MONTH` =  
       `Sales_Performance_Region`.`MONTH` )
       )
WHERE  `BRANCH_BUDGET`.`RG` =  'FE'
        AND  `Sales_Performance_Region`.`RG` =  'FE'
        AND  `BRANCH_BUDGET`.`YEAR` =  '2018'
GROUP BY  `BRANCH_BUDGET`.`MONTH` 

您仅按 BRANCH_BUDGET.MONTH 分组,但不按任何其他列分组或对任何其他列执行聚合函数(保存 BRANCH_BUDGET.BUDGET)。因此,您的输出是错误的,因为它只返回两个月。

关于mysql - 错误 GROUP BY Dates MysQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48646595/

相关文章:

sql - Ruby on Rails 最佳设计模式而不是单表继承?

javascript - 在angularjs中获取全局(UTC或GMT)时间而不是本地时间

php - 如何保存用户上传的内容?

mysql - sql查询,一对多关系

sql - 无法在 sql server 2017 安装程序中找到报告服务

Java Android Date 周五返回错​​误的 GetDay()

ruby-on-rails - Rails 提前一个月到二月有时会失败

PHP mySql 查询调用问题

mysql - 通过控制台从转储中恢复数据库

mysql - nodeJS 应用程序无法连接到 google MySQL 数据实例