我有一个奇怪的问题。我有一个报告 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'))
,非常感谢克雷格!