gpt4 book ai didi

mysql - 转换为十进制的 varchar 的聚合没有给出正确的答案

转载 作者:行者123 更新时间:2023-11-30 23:33:01 25 4
gpt4 key购买 nike

最近我们遇到了一个报告生成问题,其中聚合 (SUM()) 是对 varchar 值执行的。这些值是存储的工时,它们是整数值,例如:456.9。由于我们正在进行维护,因此无法更改表格设计。经过一些研究后,我通过添加一些显式转换来修改查询。

select ts.changedto as CHANGEDSTATE,
cast(sum(coalesce(cast(trim(tw.estimatedhours) AS DECIMAL(5,2)),0)) AS UNSIGNED) as ESTIMATEDHOURS,
cast(sum(coalesce(cast(trim(tw.actualhours) AS DECIMAL(5,2)),0)) AS UNSIGNED) as ACTUALHOURS
from tstatechange ts
left outer join tworkitem tw on (ts.workitemkey=tw.workitemkey)
left outer join tprojcat pc on (tw.prOJCATKEY = pc.pKEY)
where (ts.changedto = '8') and ts.lastedit between '2012-02-01 00:00:00' and '2012-02-28 23:59:59'
and pc.projkey = 39 group by CHANGEDSTATE;

甚至这个查询也返回了错误的值。例如对于这些值手动求和

(89.35
96
11.15
0
0.1
92
1
609.05
61.25
0.5
1
0.5)

产生 961.9 但查询返回 963。谁能帮我解决这个问题。是否有任何特殊功能或任何其他解决方法?

最佳答案

我认为您的查询存在四舍五入的问题。那两个 0.5 可能变成两个 1。给963.你用的是什么数据库?

关于mysql - 转换为十进制的 varchar 的聚合没有给出正确的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9603858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com