VS 2003 で Crystal Reports の Sum フィールドに問題があります。VS 2003 と Crystal Reports を使用して、SQL Server 2000 データベースから取得したデータを含むレポートを生成し、実行時に厳密に型指定されたデータセット内に保持しています。
データセットにはいくつかのテーブルが含まれており、そのうちの 1 つであるordersテーブルは、2 つの異なるテーブルのレコードを結合する SQL クエリの結果を受け取ります。実行時にordersテーブルの内容をチェックした後、データセットを Report オブジェクトに渡す直前に、問題の SQL クエリが正しく機能し、常にデータベースから期待されるデータを返すことを確認しました。
データセットは反復処理され、反復ごとに、異なる orderID に対して実行された SQL クエリの結果がデータセットにマージされます。また、SQL クエリは、各 orderID に関連する他のテーブルからレコードを取得し、それらをデータセット内の適切なテーブル ( orders以外) に配置します。
特定の列、 orders.order_amount列を Crystal Reportに合計しようとすると、問題が発生します。私が得る合計は間違っています。
たとえば、ordersテーブルには、レポートのデータソースとしてバインドされた時点で 3 つのレコードが含まれており、それぞれのorder_amount = $10.00 です。$30.00 を返す代わりに、sum フィールドの値は $50.00 のようになります。
これがどのように発生するのかわかりません。Crystal Reports のバグか、レポートに項目が欠落していることが原因だと思います。データセットは正しく入力されていますが、Crystal Reports は、 orderIDに基づいて取得された関連レコードを、ordersテーブルのレコードとして何らかの形で混同し、order_amountの合計に追加しているようです。
関連レコードを入力する SELECT ステートメントを無効にすると、order_amountの合計が正しく表示されます。
なぜこれが起こるのか誰にも分かりますか?前もって感謝します。
レイ