1

我有一个奇怪的问题。我有一个报告CR。在选择公式中,我对两个字段进行测试。测试很简单:{field_City} = 'Paris' OR {field_Country} = 'France'不包含具有空值列的行的选择公式

这是我的表中的数据样本:

|---------------|---------------|---------------| 
| ID_Record | Country |  City  | 
|---------------|---------------|---------------| 
|  1  |  null  |  Paris | 
|---------------|---------------|---------------| 
|  2  |  France |  null  | 
|---------------|---------------|---------------| 
|  3  |  France |  Paris | 
|---------------|---------------|---------------| 

的选择的结果应该是3条记录,但是它排除其中存在的一个空值的2个第一行列。然后我改变了这样的选择公式考虑空值:({field_City} = 'Paris' AND (isnull({field_Country}) OR not(isnull({field_Country})))) OR ({field_Country} = 'France' AND (isnull({field_City}) OR not(isnull({field_City}))))但我仍然只获得最后一个记录!为了确保自己我的代码是正确的,我通过CR'Show sql query'中的选项生成了sql查询,然后我添加了一个WHERE子句,其中我写了与放入选择公式相同的条件,而......它给了我3条记录!不幸的是我不能使用sql查询,我必须找出为什么公式排除在其中一列中有空值的记录:(我希望你能帮助我。非常感谢!

这是解决方案:((isnull({field_Country}) AND {field_City} = 'Paris') OR (isnull({field_City}) AND {field_Country} = 'France') OR (not(isnull({field_Country})) AND {field_City} = 'Paris') OR (not(isnull({field_City})) AND {field_Country} = 'France')),非常感谢你克雷格

回答

1

你需要测试空值第一

(Not(Isnull({field_Country})) AND {field_Country}='France') 
OR 
(Isnull({field_Country}) AND {field_City}='Paris') 
+0

克雷格您好,感谢您的帮助,但我仍然有同样的结果:(我首先测试null,但没有改变,我不知道如何,直到现在我们仍然有这些虚拟技术:( – Walloud

+0

再次克雷格。对不起,这件事太奇怪了。它现在工作,因为首先我测试两个字段的空值,然后两个都不为空。这是解决方案:((isnull({field_Country})AND {field_City} ='Paris')OR(isnull({field_City})AND {field_Country} ='France')OR(not(isnull({field_Country})) AND {field_City} ='Paris')OR(not(isnull({field_City}))AND {field_Country} ='France')),非常感谢! – Walloud