0

SAS コードを Cognos Report Studio バージョン 10 に変換していますが、データの書式設定が必要な場所でスタックしています。

IF SDW_STAT ^= '' THEN PRINCIPAL_BAL = TOT_PRIN;

'' は、スペースを含まない一重引用符を表します

私は書いてみましたCASE STATEMENT

CASE 
WHEN ([SDW_STAT] IS NOT MISSING) THEN ([PRINCIPAL_BAL] = [TOT_PRIN])
ELSE ('') 
END

<> '', is not null, <> ' '私も代わりのようないくつかのオプションを試しIS NOT MISSINGましたが、どれもうまくいきませんでした。どこが間違っているのか教えてください。注意: SDW_STAT 列には空白のフィールドがほとんどなく、「Y」「S」などの文字がいくつかあります。

4

2 に答える 2

3

CASE列をステートメントの外に置いてみてください。

PRINCIPAL_BAL = 
    CASE 
        WHEN COALESCE(SDW_STAT,'') <> '' THEN TOT_PRIN 
        ELSE PRINCIPAL_BAL 
    END

論理的には、これにより、sdw_stat が空白または null に等しくない場合、principal_bal が tot_prin に更新されます。空白の場合は、それ自体に更新されます。

于 2014-05-27T14:30:56.893 に答える
0

問題はおそらく ELSE ステートメントです。THEN 句は方程式です。これは、 trueまたはfalseのいずれかのブール値を返します。あなたのelseは文字列を返しています。これらのタイプには互換性がありません。ELSE を次のように変更することで、これをテストできます。

ELSE (false)

私の推測では、データ型エラーはなくなるでしょう。

このコードを使用している場所について詳しく教えてください。それはデータ項目にありますか、それともフィルターにありますか? 式が使用される場所に応じて、さまざまなルールがあります。

注:質問に直接コメントしますが、私は新しく、まだ能力がありません。

于 2014-05-30T20:50:54.327 に答える