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