MySQL:舍入总和不等于整数

标签 mysql

我有一个查询,在该查询中我将四舍五入的总和与整数进行比较,但我收到了意外的结果。

SELECT assignments.*
  FROM assignments
  INNER JOIN time_entries
    ON time_entries.assignment_id = assignments.id
  WHERE assignments.organization_id = 2
  AND assignments.allocation_mode = 'fixed'
  AND (fixed_hours is not null)
  HAVING round(sum(time_entries.scheduled_hours)) != round(assignments.fixed_hours);

它返回 fixed_hours20 的作业。该列是一个 float 。

当我选择与该记录匹配的 time_entries 总和时,我得到 20.000000298023224。当我对此调用 round 时,我得到 20:

SELECT
  round(sum(scheduled_hours))
  FROM time_entries
  WHERE assignment_id=112869;

SELECT round(fixed_hours) from assignments where id=112869 也给出 20

当然 select round(20.000000298023224) = round(20); 返回 1

那么我查询返回该记录有什么问题吗?

最佳答案

不错的查询汇总尝试 :),但您需要一个分组依据...

SELECT
      assignments.*
FROM assignments
INNER JOIN (
      SELECT
            assignment_id
          , ROUND(SUM(time_entries.scheduled_hours)) sum_hrs
      FROM time_entries
      GROUP BY
            assignment_id
) te ON assignments.id = te.assignment_id
WHERE assignments.organization_id = 2
AND assignments.allocation_mode = 'fixed'
AND (fixed_hours IS NOT NULL)
AND te.sum_hrs <> ROUND(assignments.fixed_hours)
;

关于MySQL:舍入总和不等于整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47361083/

相关文章:

mysql - 数据截断: Incorrect datetime value - coldfusion

php - 为什么我的 PHP 记录没有被插入

php - k2 扩展未显示在 joomla 组件中

mysql - 通过 Mysql 工作台使用 rds 数据库的 aspx.net 登录页面

php - 根据每件商品的总金额来优化您的搜索。 PHP 与 MYSQL

MySQL 程序接受用户输入并显示与结果相同的结果 - 不工作

php - .htaccess 文件中的 url 重写问题

mysql - 聚合条件,当

mysql - 为什么是语法错误?

MYSQL:更新一行而不提及字段名称