• ベストアンサー

アクセスで列合計の方法について

クエリ-で |A|B|A+B| A+Bの合計クエリを作成したいのですが どうしたら良いですか指導願います。 又 文字列なら数字の変換関数も指導願います

質問者が選んだベストアンサー

  • ベストアンサー
noname#140971
noname#140971
回答No.2

<TEST> ID___INTEGER_A________INTEGER_B______STRING_A_______STRING_B 1________________10_____________________20_____10___________________20 2_________<NULL>_____________________20____<NULL>____________20 3__________________0______________________0_____100000000.001___100000000.001 例えば、このようなテーブルがあったとします。 <クエリ1> IINTEGER_WA__________STRING_WA ________________30_______________________30 ________________20_______________________20 __________________0______200000000.002 このような結果を得るクエリを[SQLビュー]で表示すると、 SELECT NZ([INTEGER_A])+NZ([INTEGER_B]) AS INTEGER_WA,       Val(NZ([STRING_A],'0'))+Val(NZ([STRING_B],'0')) AS STRING_WA FROM TEST; ですから、 SELECT NZ([A])+NZ([B]) AS WA FROM TEST; または、 SELECT Val(NZ([A],'0'))+Val(NZ([B],'0')) AS WA FROM TEST; 文字列に対応する数値の型が既知であれば、CINT()、CLNG()、CDBL() を使えば宜しいと思います。

ryo0511
質問者

お礼

有難うございました

その他の回答 (1)

回答No.1

テーブル名が tableName、A が長整数型の列で B が文字列型の列だとして SELECT A, B, A + CLng([B]) AS hoge FROM tableName てところでしょうか。 hoge は適当な名前にしてください。 実行した時に表示される表の列名は左から A、B、hoge になります。 もし B に「数値に変換できない文字」や「Null」が入る可能性があるのであれば SELECT A, B, IIf(IsNumeric([B]), [A] + CLng([B]), [A]) AS hoge FROM tableName とすれば、IsNumeric で B の値を数値として評価できるか判断し、数値として使えれば A + B の結果を出し、数値として使えない場合は A の値をストレートに出すようにできます。 IsNumeric や IIf についてはご自分でお調べください。

関連するQ&A