2011-10-03 44 views
1

我想从两个不同的表中添加值,但其中一个表是完全空的。我知道Nz()函数是为了将空值转换为不同的值,即0,但我遇到的问题是表没有任何数据,所以Nz()不起作用。MS Access + NZ()函数与空表

如果一张表是空的,我可以将两个表的值加在一起吗?我知道这似乎毫无意义,最终桌上会有价值,但为了本周的报道,我需要这样做。

谢谢

回答

2

我怀疑这是与您的查询。尝试在东西线:

SELECT Nz(t1.[Field1],0) + Nz(t2.[Field1],0) As Added 
FROM t1 LEFT JOIN t2 
ON t1.ID = t2.ID 

重要的一点是LEFT JOIN,其中将包括来自T1的所有记录,即使在T2不匹配。

+1

您需要使用'NZ(场,0)'因为你忽略第二个参数,'Nz'会返回一个空字符串。 –

+0

哎呀,谢谢@Christian – Fionnuala

+0

你认为我现在已经学会了这些东西。感谢Remou! – jerry

0

请注意,Nz()功能在Access UI之外不可用。下面是避免Nz()另一种方法:

SELECT t1.Field1 + t2.Field1 AS Added 
    FROM t1 INNER JOIN t2 ON t1.ID = t2.ID 
UNION 
SELECT 0 AS Added 
    FROM t2 
HAVING COUNT(*) = 0;