0

1つの列には、以下のcaseステートメントが含まれています。データがレンダリングされると、負の10進値が誤って表示されます。

正しい値= -0.9ですが、.- 9と表示されます。 データ形式などを変更して操作しようとしましたが、正しい結果が得られませんでした。

なんとかしてデータを操作して-0.9と表示したい

case when cast([Relational Layer]。[Amount]、varchar(40))<>'-2000.00' then cast([Relational Layer]。[Amount]、varchar(40))else'Not Available' end

4

1 に答える 1

0

キャスト変換の問題に直面していると思います。いくつかの解決策があります。これ以上読む前に、レポートの列の書式設定を再確認してください... テキスト フィールドであるため、実際にはそれができないときに、書式が適用されているように見えます。

順不同

  1. 「利用できません」を利用できるように、varcharに変換しようとしているようです。別のアプローチを試してみることをお勧めします。ケース式を変更して、varchar キャストなしで純粋な計算を行います。そして、レポートスタジオで表示している可能性があると推測しているので、レポートスタジオとレポートスタジオを使用して、値を表示中にif -2000または「使用不可」に設定されたテスト条件を持つ条件変数/スタイルを設定できます

  2. クエリ サブジェクトに 2 つの列を作成できます。一方には case ステートメントがありますが、「使用不可」の場合にのみ入力され、もう一方は純粋な数値であり、実際の値の場合にのみ入力されます。レポートでは、列に変数/条件付きスタイルを使用して、使用不可のテストに基づいていずれかの列を表示することもできます... 使用不可の場合は使用不可の列を表示し、それ以外の場合は数値列を表示します。

  3. 正しい値を返す純粋に数値のケース式を用意します。ただし、ケース式では、「利用できません」ではなくnullを返すようにします。レポートでは、null または再び条件付きスタイル/変数を使用してこれを行うことができる場合に、値をデフォルトにする直接的な方法があると思います。

条件付きスタイル/変数は、ディスプレイ上でクレイジーな置換/評価を行うのに非常に便利で、行ごとに操作できます。

于 2013-01-26T05:15:12.517 に答える