我正在sql server 2012上运行查询,并通过将结果保存为选项导出到csv中的成本记录,csv中所有记录的总和显示1817751.612
SELECT SUM(Cost) AS COST FROM TABLE_NAME GROUP BY ...,...,...;
COST
0.005719641
0
3.56
0.167338156
0.007596698
1.78
0.03634226
......
.....
...
但是在检查所有成本记录的SUM时的结果是1823065.094
SELECT SUM(Z.COST) FROM(SELECT SUM(Cost) AS COST FROM TABLE_NAME GROUP BY ...,...,...) AS Z;
为什么csv将总和显示为1817751.612而不是1823065.094,我该如何更正? 我已经尝试过对Cum列使用CAST,ROUND和CONVERT,但是没有用。 预先感谢
答案 0 :(得分:1)
尝试使用小数运行计数:
SELECT SUM(Z.COST)
FROM (SELECT SUM(CAST(Cost as DECIMAL(38, 20)) AS COST
FROM TABLE_NAME
GROUP BY ...,...,...
) AS Z;
问题很可能是由于您拥有大量数字并且您正在使用浮点数。我推测类型实际上是4字节浮点数,而不是8字节。如果是这样,这可能是由于舍入错误。
答案 1 :(得分:0)
请告诉我们您为var resourcesToCache = [
'./',
'./index.html',
'./jquery-3.2.1.min.js',
'./pouchdb.min-6.4.1.js',
'./styles/inline.css',
'./scripts/app.js'
列使用哪种类型?
这可能是由于sql类型和csv类型之间的隐式转换
抱歉,我没有机会发表评论。