1

奇妙な問題があります。レポート CR があります。選択式では、2 つのフィールドでテストを行います。テストは次のように簡単です{field_City} = 'Paris' OR {field_Country} = 'France'

これは私のテーブルのデータのサンプルです:

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

選択の結果は 3 つのレコードになるはずですが、列の 1 つに null 値がある最初の 2 つの行は除外されます。次に、選択式を次のように変更して、null 値も考慮するようにしました。({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クエリを扱うことができません.列の1つにnull値を持つレコードを式が除外している理由を見つけなければなりません:(私はあなたが私を助けてくれることを願っています.

これが解決策です: ((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')), どうもありがとうクレイグ!

4

1 に答える 1

1

最初に null 値をテストする必要があります。

( Not(Isnull({field_Country})) AND {field_Country}='France' )
OR
( Isnull({field_Country}) AND {field_City}='Paris' )
于 2013-06-12T16:11:58.840 に答える