• 締切済み

ms access クエリの集計について

こんにちは ms accessのクエリで、文字列として入力されている数字を数値扱いに直してその合計を出そうとしているのですが、特定の値を指定して合計を出そうとすると値がマイナスになってしまいます。 例 式1:sum(val(nz[フィールド名]))=1) フィールドに1とあるレコードを足して合計を出す場合です。値がマイナスになってしまいます。nzは別のクエリ使用時に空欄があるとまずいので入れてあります。 左隣で別のフィールドでグループ化し、ここでは演算を選択しています。

みんなの回答

  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.3

「val(nz[フィールド名]))=1」 私には評価式にしか見えないんですが・・・ つまりTrue/Falseしか返さない式。 だったら文字列を数値に変換するだけの列を作成し、その列をSum()すればご希望の結果を得られると思います。

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

> 1である場合にその1を足していくイメージです。 =1を付けただけではそのような処理にはなりません。 > sumの外側には何もありません。 だとするとカッコの数が合いませんよ。

yayamuyayamu
質問者

補足

すみません、記載ミスです 式1:sum(val(nz([フィールド名]),0)=1) です。 足していくにはどうすれば良いですか?

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

sum() で合計したモノと 1 を等価か比較しているようですが、sumの外側に何が書かれているのか分からないので何とも言えませんが、比較演算の影響で偽と判定され -1 が加算されたり乗算されたりしている可能性があるんじゃないでしょうか。

yayamuyayamu
質問者

補足

すみません、等価云々というのはどういうことでしょうか?1である場合にその1を足していくイメージです。 sumの外側には何もありません。 便宜上式1:としています。