- ベストアンサー
ACCESS2000 合計の表示がおかしい
- 毎日の売上と仕入れの金額を合計して表示する際に、0円の売上が正しく表示されない問題が発生しています。
- 現在の表示では、0円の売上がある日の合計が400円と表示されてしまいます。
- 同様の問題は仕入れにも存在し、正しい表示が行われていません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
なんどもすみません(T T)。 手順3: にHaving句の条件を追加してください。
その他の回答 (4)
- guruguru2
- ベストアンサー率29% (39/132)
#1です。以下の手順でやってみてください。 1つのSQLでもできるのですが、(副問い合わせ使えば) 最も簡単な方法として 手順1: SELECT T受注伝票.受注日, Sum(T受注伝票.税込金額計) AS 税込金額計の合計 FROM T受注伝票 GROUP BY T受注伝票.受注日; のSQLのクエリ A を作成する。 手順2: SELECT T発注伝票.発注日, Sum(T発注伝票.税込金額計) AS 税込金額計の合計 FROM T発注伝票 GROUP BY T発注伝票.発注日; のSQLのクエリ B を作成する。 手順3: SELECT [A].[受注日], [A].[税込金額計の合計], [B].[税込金額計の合計] FROM A INNER JOIN B ON [A].[受注日]=[B].[発注日]; のクエリ Test を作成する。 で手順3で作成したクエリ Test で正しい結果が出てくるはずです。(^^) なぜこんな現象になったかというと、T受注伝票の受注日に対してT発注伝票 の発注日が複数レコードあることにより、合計値がそのレコード分だけ 加算されてしまったのですね。
- guruguru2
- ベストアンサー率29% (39/132)
またまたこんにちわ(^^)。#1です。 う~む…。困りましたな(@ @; 条件とかはどうなっているのでしょうか? HAVING ((T受注伝票.受注日) Between [FROM] And [TO]) の[FROM]と[TO]の条件にはどういったデータを入れているのでしょうか? 例えば2003/1/1から2003/1/3までのデータを入れたい場合は、 SQLの条件に直打ちしてやってみてください。 HAVING (((T受注伝票.受注日)>=#2003/1/1# And (T受注伝票.受注日)<=#2003/1/3#)) ってなかんじで。
お礼
ほんとどうもすいませんです。 抽出条件に関しては、実はやってたりするんですよ・・・。 任意の日付を入れるのでなくても、やはり合計が倍で出たりしました。
- guruguru2
- ベストアンサー率29% (39/132)
う~ん。#1です。 おかしいですな。私も実際やってみて出来たのですが…。(?@?) では、実際にSQLをクエリのSQLビューに入れて デザインを開いてみてください。 ひょっとしたらスペース等の関係でエラーがでているのかも…。 フィールド名がおかしくなってたりしたらなおしてみてください(^^;
お礼
お手数かけます。 スペースでエラーが出てました。 どうもすいません。 しかし、相変わらず合計は2倍になったりのままです...。
- guruguru2
- ベストアンサー率29% (39/132)
こんにちわ(^^)。 直接の回答につながってないかもしれないのですが、 SQL中で T受注伝票 INNER JOIN T発注伝票 ON T受注伝票.受注日 = T発注伝票.発注日 を行っているということは、 T発注伝票.発注日 に関する条件や表示はいらないのでは…? T発注伝票.発注日の条件を指定するということは、 T受注伝票.受注日の条件を指定すると同じことなので SELECT T受注伝票.受注日 , Sum(T受注伝票.税込金額計) AS 合計 , Sum(T発注伝票.税込金額計) AS 合計1 FROM T受注伝票 INNER JOIN T発注伝票 ON T受注伝票.受注日 = T発注伝票.発注日 GROUP BY T受注伝票.受注日 , T発注伝票.発注日 HAVING ((T受注伝票.受注日) Between [FROM] And [TO]) ORDER BY T受注伝票.受注日; でいいと思います。
お礼
早速の回答、ありがとうございます。 やってみたんですが、構文エラー:演算子がありませんと言われてしまいました・・・。
お礼
出来ましたー!ヽ(´∇`)ノ ありがとうございます。 お手数かけました・・・。