Access查询和Sql查询结果不匹配

Posted

技术标签:

【中文标题】Access查询和Sql查询结果不匹配【英文标题】:Access Query and Sql Query Results Don't Match 【发布时间】:2015-01-09 19:55:43 【问题描述】:

访问查询:

IIf([rptd mean net (g)] > 0, [rptd mean net (g)] - ([Actual Tare Wt (g)] - [Machine Tare Wt (g)]), [Mean Gross (g)] - [actual tare wt (g)]) AS [Net Mean Wt (g)]

这是我从访问click me得到的结果

SQL 查询:

SELECT 
   CASE 
      WHEN [Net Weight Tracking].[Rptd Mean Net (g)] > 0 
         THEN (([Net Weight Tracking].[Rptd Mean Net (g)]) - ([Net Weight Tracking].[Actual Tare Wt (g)])- ([Net Weight Tracking].[Machine Tare Wt (g)])) 
         ELSE ([Net Weight Tracking].[Mean Gross (g)]) - ([Net Weight Tracking].[Actual Tare Wt (g)])  
   END AS [Net Mean Wt (g)]
FROM 
   dbo.[Net Weight Tracking]

这是我为 SQL click me 得到的结果

我的问题是:是什么导致了 [Net Mean Wt (g)] 的差异,我的 SQL 案例语句是否有问题,如果是,我该如何修复我的查询?

【问题讨论】:

【参考方案1】:

您的访问查询有括号将其搞砸:

[rptd mean net (g)]-([Actual Tare Wt (g)]-[Machine Tare Wt (g)])

327-(46.6-47) = 327 - (-.4) = 328.1

您的 SQL 查询没有这些括号。

根据order of operations,括号内的运算在加减法之前完成。

【讨论】:

这取决于您要寻找的结果。我猜 SQL 是正确的。

以上是关于Access查询和Sql查询结果不匹配的主要内容,如果未能解决你的问题,请参考以下文章

Access 2010 SQL - 更新查询不起作用

左连接 SQL 查询 - MS Access

使用 Access 和 Sql 数据库构建查询

Laravel Eloquent ORM - 选择所有两个关系都不存在的模型时,生成的 SQL 和查询构建器结果不匹配

访问 SQL 子查询 WHERE 子句不过滤结果 [关闭]

动态 SQL 在 Access 直通查询中未返回结果