Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 是否可以在不更改sql\u模式的情况下获取总和?_Mysql_Sql_Aggregate Functions_Sql Mode - Fatal编程技术网

Mysql 是否可以在不更改sql\u模式的情况下获取总和?

Mysql 是否可以在不更改sql\u模式的情况下获取总和?,mysql,sql,aggregate-functions,sql-mode,Mysql,Sql,Aggregate Functions,Sql Mode,使用join语句从多个表中获取SUM值时遇到问题。错误是: 这与sql\u mode=only\u full\u group\u by不兼容 是否可以在不更改sql_模式的情况下获取总和?如果可能的话,如何生成一个SQL语句 表燃油: vehicle_id | liter -----------+----------- 2 | 43.5 4 | 78.3 8 | 20.5 date_usage | vehicle_id ----------

使用join语句从多个表中获取
SUM
值时遇到问题。错误是:

这与sql\u mode=only\u full\u group\u by不兼容

是否可以在不更改sql_模式的情况下获取总和?如果可能的话,如何生成一个SQL语句

燃油

vehicle_id | liter
-----------+-----------
         2 | 43.5
         4 | 78.3
         8 | 20.5
date_usage | vehicle_id
-----------+-----------
2019-10-01 |  8
2019-10-15 |  2
2019-10-20 |  8
2019-10-20 |  4
2019-11-02 |  8
表格
用法

vehicle_id | liter
-----------+-----------
         2 | 43.5
         4 | 78.3
         8 | 20.5
date_usage | vehicle_id
-----------+-----------
2019-10-01 |  8
2019-10-15 |  2
2019-10-20 |  8
2019-10-20 |  4
2019-11-02 |  8
SQL语句如下所示:

SELECT fuel.vehicle_id, SUM(fuel.liter), usage.date_usage
FROM fuel
LEFT JOIN usage ON fuel.vehicle_id = usage.vehicle_id
WHERE fuel.vehicle_id='8'
AND usage.date_usage >='2019-10-01' AND usage.date_usage <='2019-10-31'
GROUP BY fuel.vehicle_id
选择fuel.vehicle\u id、SUM(fuel.l)、usage.date\u usage
来自燃料
左连接燃油使用情况。车辆\u id=使用情况。车辆\u id
哪里有燃油。车辆\u id='8'

和usage.date\u usage>='2019-10-01'和usage.date\u usage解决这个问题有两种可能:

  • 选择
    中删除列
    用法.date\u用法
  • 使用列
    用法。日期\u用法
    也:
    • MAX
      以获取列的最大值
    • MIN
      获取列的最低值
    • 获取列的任何值
因此,您的查询可以如下所示(在
usage.date\u usage
列中使用
MAX
):

注意:在MySQL中小心使用
用法
等词作为标识符(例如表名和列名)。有一些是你应该避免的,或者用反勾号引用