【问题标题】:Syntax error or access violation: 1140 Mixing of GROUP columns (MIN(),MAX(),COUNT(),...)语法错误或访问冲突:1140 GROUP 列的混合 (MIN(),MAX(),COUNT(),...)
【发布时间】:2020-07-05 16:14:57
【问题描述】:

SQL 错误

SQLSTATE[42000]:语法错误或访问冲突:1140 混合 没有 GROUP 列的 GROUP 列 (MIN(),MAX(),COUNT(),...) 是 如果没有 GROUP BY 子句,则非法(SQL:SELECT sum(vehicles.total_amount) 作为 TotalAmount, COALESCE(CONCAT(payment_mode.payment_name, '(', ROUND( SUM(vehicles.total_amount)*100/Total.TotalAmount, 2),'%)'),0) 为 百分比 FROM vehicles LEFT OUTER join payment_mode ON payment_mode.id = Vehicles.pay_mode_id 左外连接(选择 SUM(vehicles.total_amount) 作为 TotalAmount,来自车辆的标志)作为 Total ON Total.flag=vehicles.flag WHERE vehicle.created_at > '2020-03-25 00:01:01' 和车辆.created_at

SQL 查询

SELECT sum(vehicles.total_amount) as TotalAmount,
        COALESCE(CONCAT(payment_mode.payment_name, '(', ROUND( SUM(vehicles.total_amount)*100/Total.TotalAmount, 2),'%)'),0) as Percent
FROM `vehicles`
LEFT OUTER join payment_mode ON payment_mode.id = vehicles.pay_mode_id
LEFT OUTER JOIN (SELECT SUM(vehicles.total_amount) as TotalAmount, flag from vehicles) as Total ON Total.flag=vehicles.flag
WHERE vehicles.created_at > '$today' and vehicles.created_at < '$todays'
GROUP BY vehicles.pay_mode_id

这是我的代码,即使这段代码在 MySQL 上运行良好,但是当我放入 Laravel 时,它会显示错误。

【问题讨论】:

标签: php mysql laravel


【解决方案1】:

您的子查询 (SELECT SUM(vehicles.total_amount) as TotalAmount, flag from vehicles) as Total 错误 - 将 GROUP BY flag 添加到其中:

SELECT sum(vehicles.total_amount) as TotalAmount,
        COALESCE(CONCAT(payment_mode.payment_name, '(', ROUND( SUM(vehicles.total_amount)*100/Total.TotalAmount, 2),'%)'),0) as Percent
FROM `vehicles`
LEFT OUTER join payment_mode ON payment_mode.id = vehicles.pay_mode_id
LEFT OUTER JOIN ( SELECT SUM(vehicles.total_amount) as TotalAmount, flag 
                  from vehicles
                  GROUP BY flag ) as Total ON Total.flag=vehicles.flag
WHERE vehicles.created_at > '$today' and vehicles.created_at < '$todays'
GROUP BY vehicles.pay_mode_id

【讨论】:

  • 我试过你说的,但仍然显示错误。
  • @arunkumar 请在问题文本中添加查询中使用的所有表的 DDL(可以跳过查询中未使用的索引、表选项和列)。并指定 MySQL 版本。我们会尝试...
猜你喜欢
  • 2019-02-11
  • 2018-09-25
  • 1970-01-01
  • 2010-11-17
  • 2020-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多