0

私はそれらの1つにコンピュータを窓の外に投げ出させています。

Crystal Reports(バージョン10)とOracleデータベース(11g)に関連する問題に取り組んでいます。

データベースから、実際には数値である文字列(varcahr2(50))を返すビューを取得しています。このビューで基本的なSELECT *クエリを実行すると、000000000000100.00の形式で数値が返されます。

このビューをCrystalReportsで使用すると、フィールドデータを表示できますが、数値ではないため、データを合計できません。

私は、フィールドでToNumberを使用することから始めました。これに対する、Crystalの応答は、文字列が数値テキストではないというものでした。十分に公平です。ビューに戻ってTO_NUMBERを実行しましたが、これをCrystalで使用しても、結果は返されませんでした。また、ビューでTO_CHARを実行して、フィールドをテキストとしてインポートしてからToNumberを実行できるようにしましたが、TO_NUMBERの場合と同じように、レコードは表示されませんでした。

新しいレポートを開始し、新しいビューを開始しました。役立たず。

これは、ビューのデータを取得する方法と関係があるようです。

簡単に言うと、外部キーフィールドと値フィールドの2つのフィールドを見ているテーブルからデータを取得しています。

SELECT PRIMARY_KEY, 
       NVL(MAX(DECODE(FOREIGN_KEY, FOREIGN_KEY_OF_VALUE_I_NEED, VALUE_FIELD)), 0)
    FROM MY_TABLE  
    GROUP BY PRIMARY_KEY

TO_NUMBERまたはTO_CHARを使用して結果を変更しようとしたとき、VALUE_FIELD自体と式全体の周りで使用しましたが、SQLステートメントで実行すると枯れた方法で機能します。ただし、ステートメントにTO_NUMBERまたはTO_CHARを変更すると、ビューが使用されたときにCrystalReportsに結果が返されません。

この全体の問題は、私が見落としていたチェックボックスまたは同等のものである何かのスマックです。

この問題を解決する方法や、答えを探すためにどこに行けばよいかについての提案をいただければ幸いです。

4

2 に答える 2

0

これは、Crystal Reports がデータベースからのクエリを処理する方法に問題があることが判明しました。私がする必要があったのは、別の Select ステートメント内に SQL ステートメントを含め、列のこのインスタンスに TO_NUMBER を適用して、Crystal Reports が列の値を数値として認識できるようにすることだけでした。

これは午後のひどい無駄だったので、これが誰かを助けることを願っています.

于 2012-11-28T11:34:03.893 に答える
0

SQL Developer で次のクエリを実行しました。

SELECT xxx, to_number(xxx) yyy
FROM  (
  SELECT '000000000000100.00' XXX FROM DUAL
  )

その結果:

XXX                 YYY
000000000000100.00  100

フィールドが真の数値である場合は、SQL 式フィールドを作成して変換を行うことができます。

-- {%NUMBER_FIELD}
TO_NUMBER(TABLE.VALUE_FIELD)
于 2012-11-26T16:40:42.470 に答える