【发布时间】:2013-09-18 13:14:32
【问题描述】:
我在 Access 中有一个查询,其中一个字段包含一个子查询,该查询返回相关表中特定字段的总和。子查询的结果用于主查询中的进一步计算。
这在使用 ADO.Net 的 VB.Net(C# 很好)中的自制报告应用程序中使用。查询存储在 Access 中的表中,以便我们更正小错误或添加与数据相关的临时功能,而无需再次发布我们的应用程序。
问题是子查询可能没有返回结果(null)。此外,计算中使用的空值也将返回空值。因此,如果需要,我需要将空值替换为 0。我添加了NZ(subquery, 0),但是 ADO.Net 抛出了以下异常:
Undefined function 'NZ' in expression
我了解到在 ADO.Net 中无法使用 VBA 函数,因为它是 Access.Application 对象的一部分。
我也考虑过使用IIF(subquery Is Null, 0, subquery),但这会迫使我复制子查询,并强制 Access 执行两次子查询(可能)。由于子查询相当复杂(主查询也是如此),我想避免这种情况,至少是为了可读性,如果不是性能的话。
是否有另一种方法可以将空值替换为另一个值,或者确保我的子查询即使没有匹配记录也将始终返回非空和?
【问题讨论】:
-
更改子查询 SQL,使其返回 0 而不是 Null。
标签: c# sql vb.net ms-access ado.net