我有一个交叉表查询,将Patient_ID计为值。
Total = Nz(Count(Research.Patient_ID))+0
我也尝试过:
Total = Nz(Count(Research.Patient_ID)
和....
Total = Nz(Count(Research.Patient_ID, 0)
等。 Nz()仅在至少一个值不为空时才有效。但是,如果所有这些都是null,而不是看到全0,我什么也看不见。
这是有问题的,因为我将这些查询用作子查询。主查询从这一个(和其他类似的)中获取值并将它们加在一起。不幸的是,如果其中一个子查询完全为null,那么总和实际上会变为null,无论是否应该这样。
例如:
subquery1: Nz(Count(Research.Patient_ID))+0
subquery2: Nz(Count(Research.All_ID))+0
mainquery: subquery1 + subquery2
if subquery1 = 4, and subquery2 = Null...
mainquery = subquery1 + subquery2
mainquery = Null
真的......
mainquery = 4
请帮忙。
答案 0 :(得分:2)
nz(null, null)+0
始终为null
,null + anything
为null
。
如果nz()
可以返回null
,只需应用其他nz()
来处理它;
SELECT ... nz(nz([value1], [value2]), 0)
答案 1 :(得分:2)
在此查询中,主查询生成在两个子查询中确定的计数总和。这就是你要追求的吗?
SELECT
Nz(s1.CountOfPatient_ID,0) + Nz(s2.CountOfAll_ID,0)
FROM
[SELECT Count(Patient_ID) AS CountOfPatient_ID FROM Research]. AS s1,
[SELECT Count(All_ID) AS CountOfAll_ID FROM Research]. AS s2
答案 2 :(得分:0)
你可能应该更精细,并发布主要查询的确切部分,其中两个计数被加起来。
到目前为止,我只能猜测您需要将NZ()
添加到主查询表达式,例如(使用您的伪代码)
mainquery = NZ(subquery1, 0) + NZ(subquery2, 0)