Sql Nz()在MS Access中不工作

Sql Nz()在MS Access中不工作,sql,ms-access,ms-access-2007,Sql,Ms Access,Ms Access 2007,我有一个交叉表查询,它将患者ID作为值计算 Total = Nz(Count(Research.Patient_ID))+0 我也尝试过: Total = Nz(Count(Research.Patient_ID) 还有 Total = Nz(Count(Research.Patient_ID, 0) etc.Nz()仅在至少一个值不为null时才起作用。但是,如果它们都为null,则我看不到任何内容,而不是看到所有0 这是有问题的,因为我使用这些查询作为子查询。主查询从这个(以及其他类似

我有一个交叉表查询,它将患者ID作为值计算

Total = Nz(Count(Research.Patient_ID))+0
我也尝试过:

Total = Nz(Count(Research.Patient_ID)
还有

Total = Nz(Count(Research.Patient_ID, 0)
etc.Nz()仅在至少一个值不为null时才起作用。但是,如果它们都为null,则我看不到任何内容,而不是看到所有0

这是有问题的,因为我使用这些查询作为子查询。主查询从这个(以及其他类似的)查询中获取值并将它们添加到一起。不幸的是,如果其中一个子查询完全为null,那么不管是否应该为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
请帮助。

nz(null,null)+0
将始终为
null
,因为
null+任何东西都是
null

如果
nz()
可以返回
null
,只需应用另一个
nz()
来处理它

SELECT ... nz(nz([value1], [value2]), 0)
nz(null,null)+0
将始终是
null
,因为
null+任何东西都是
null

如果
nz()
可以返回
null
,只需应用另一个
nz()
来处理它

SELECT ... nz(nz([value1], [value2]), 0)

您可能应该更详细地说明,并将两个计数相加的确切部分发布在主查询中

到目前为止,我只能猜测您需要向主查询表达式添加
NZ()
,类似(使用伪代码)


您可能应该更详细地说明,并将两个计数相加的确切部分发布在主查询中

到目前为止,我只能猜测您需要向主查询表达式添加
NZ()
,类似(使用伪代码)


在此查询中,主查询生成两个子查询中确定的计数之和。这就是你想要的吗

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

在此查询中,主查询生成两个子查询中确定的计数之和。这就是你想要的吗

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

请您至少发布一个完整的查询和示例数据好吗?您的新西兰示例没有一个是正确的——它们是打字错误吗?它应该是Nz(表达式,值),所以Nz(Count(Research.Patient_ID),0)-您的两个示例有不平衡的参数,第一个没有实际值。请您至少发布一个完整的查询和示例数据,好吗?您的Nz示例看起来都不对——它们是打字错误吗?它应该是Nz(表达式,值),因此Nz(Count(Research.Patient_ID),0)-您的两个示例有不平衡的参数,第一个没有实际值。null+任何内容都是未知的(逻辑值而不是数据值)。。。哦,等等,这是
ms-access
,它的null与SQL的null不同;)这是怎么回事?也就是说,“Access的”Null与SQL如何不同(撇开Access没有Null的事实不谈,但是Jet/ACE SQL和VBA有Null)?Null+任何东西都是未知的(逻辑值而不是数据值)。。。哦,等等,这是
ms-access
,它的null与SQL的null不同;)这是怎么回事?也就是说,“Access的”Null与SQL如何不同(撇开Access没有Null的事实不谈,但是Jet/ACE SQL和VBA有Null)?