- ベストアンサー
[MS Access]クエリで合計金額を出したい
初歩的な質問ですみません。 以下のようなテーブルがあります。 名 前 | 請求1 | 請求2 | 割引 | Aさん | \10000| \3000 | \1000 | Bさん | \5000 | \3000 | | Cさん | \7000 | | \1000| クエリで、合計額を出したいのです。 フィールドに、 [請求1]+[請求2]-[割引] とすると、全て数字が入っているAさんのみしかでません。 空白を\0とみなして、合計額がでると思ったのですが、そのようにできますでしょうか? お手数ですが、宜しくお願い致します。 MS Access 2003です。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じですか iif(isnull([請求1]),0,[請求1]) +iif(isnull([請求1]),0,[請求2]) -iif(isnull([請求1]),0,[割引])
その他の回答 (4)
- gosuke32
- ベストアンサー率29% (36/124)
もしかして、テーブル構造で「請求1」「請求2」「割引」のデータ形式、「テキスト形式」になってませんか? そこを「数値型」もしくは「通貨型」に変更するだけで良いような気がします。 合計金額だけでなく、集計演算をするときにも、Nullは支障がありますので、変えてた方が良いと思います。 違ってたら、ごめんなさい。
- O_cyan
- ベストアンサー率59% (745/1260)
=Nz([請求1])+Nz([請求2])-Nz([割引]) で演算でします。
補足
的確な回答有難うございました。 できましたら、もう1つだけお聞きしたいです。 =Nz([請求1])+Nz([請求2])-Nz([割引]) 演算結果に間違いはないのですが、書式が通貨にならないのは、やむを得ないのでしょうか。 合計だけ、\マークと、,(カンマ)が入らないものですから、請求書などに、差し込む際に、体裁がうまくいきません。 もし、ご存知であれば、ご指南頂けると幸いです。
- wandayu
- ベストアンサー率24% (24/99)
面倒ですが計算する値がそれぞれNullや空白ならばゼロとするように変えればよいと思います if([請求1] is Null,0,[請求1]) 上記のようにすれば Nullのときはゼロになりそれ以外のときは請求1の値 となります。応用すればあらかじめ入ってる空白などでも 対応できます。 同様に請求2、割引もやってあげればよいともいます ただ記述が長くなるのが難点かな 一番楽なのは他の方が言うように空白のところに はじめからゼロを入れるようにすればよいと思います。
- beans9931
- ベストアンサー率30% (7/23)
空欄に0を入れるとまずいのでしょうか?・・・
お礼
的確な回答有難うございました。 今試しましたが、この方法が良いみたいです。 合計額も、通貨として、表示されました。 ありがとうございました。