【发布时间】:2021-10-15 22:56:58
【问题描述】:
我正在通过更新查询运行一个复杂的计算,我设法完成了所有其他工作,但是我正在努力完成这一点。我使用函数生成器窗口为目标字段设置更新 fo 字段。我的表格如下:
| PHD_TAG | Cal_Value | Moisture | CO2_EF | CO2 |
|---|---|---|---|---|
| ABC | 100 | 0.5 | 0.45 | * |
| FAC1 | 20 | |||
| FAC2 | 7 |
我的功能是用 * 计算和更新 CO2 字段
(1-((DLookup("Cal_Value", "TempTbl", "PHD_TAG = 'FAC1'"))+[Moisture])/100)*(DLookup("Cal_Value", "TempTbl", "PHD_TAG = 'FAC2'"))*[CO2_EF]/(22.4*44*24)
在查询生成器“SQL Query”中生成的查询如下:
UPDATE TempTbl SET TempTbl.CO2 = (1-((DLookUp("Cal_Value","TempTbl","PHD_TAG = 'FAC1'"))+[Moisture])/100)*(DLookUp("Cal_Value","TempTbl","PHD_TAG = 'FAC2'"))*[CO2_EF]/(22.4*44*24)
WHERE (((TempTbl.PHD_TAG)="ABC"));
【问题讨论】:
-
会发生什么 - 错误消息,错误结果,什么都没有? FAC1 和 FAC2 是唯一值吗?为什么要保存计算值而不是只在需要时进行计算?这是一个奇怪的要求——为什么 ABC 记录中的 CO2 依赖于 FAC1 和 FAC2 记录,为什么 FAC1 和 FAC2 中的字段为空?
-
“CO2”是什么数字类型?当您使用提供的数据运行函数时,答案是 1.05868252840909E-04,因此根据表中使用的数字类型,它可能会将其更新为 0。
-
FAC1和FAC1是数字和字母的组合,是每台设备的特殊标识,不同的设备对CO2的计算方法不同。
-
当我运行上面的代码时没有显示结果