• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:演算の初歩で躓いています)

演算の初歩で躓いています

このQ&Aのポイント
  • SQLServer2005+VB.NET2003で開発しています。従来Access2000で作っていたMDBをdboに変換し、それにともなうアプリの書き換えをやっています。
  • a,b,cという3列1組のデータが2組あり、aはchar(20)、b,cはint型です。やりたいことは a1,a2・・・・文字列をそのまま a1 & a2 と連結して表示 b1,b2・・・・b1+b2の合計を表示させたい c1,c2・・・・c1+c2の合計を表示させたい
  • データアダプタのSQL文で a1&a2 とやると (null)に 同じく b1+b2、c1+c2とやるといずれも(null)になってしまいます。単独で a1,a2,b1,b2,c1,c2それぞれ表示させるとちゃんと表示してくれます。2列のデータをまとめようとするとうまくいきません。文字列の連結は & で、数値の足し算は + で いいはず?ですよね。どこがおかしいのか、あまりにも入り口で躓いていて皆目わかりません。よろしくご教示ください。

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

  • ベストアンサー
  • driverII
  • ベストアンサー率27% (248/913)
回答No.3

SQL Server で 文字列の連結は '+' だと思いましたが。 MDB だと '&' ですけど。

danchor
質問者

お礼

たびたびありがとうございます。 >SQL Server で 文字列の連結は '+' そうなんですね。 さきほどやってみて納得しました。 というか、&ではずっとエラーがでて、シングルコートを付けたりいろいろ関係ないことを試していましたが、もっとも基本的なことでした。 この際ついでにコンバートしたデータも欠落している項を修正し、無事動くことが確認できました。 ありがとうございました。

その他の回答 (2)

  • driverII
  • ベストアンサー率27% (248/913)
回答No.2

参考になりそうな URL がありましたので追記しておきます。 一例として参考 URL のようにデータを取得して、それから演算します。

参考URL:
http://support.microsoft.com/kb/301216/
  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

通常、そのような時はまず2行(組)取得して、それからVB の演算で a1 & a2 などと実行します。 SQL 上では列同士の演算はできますが、行同士の演算は制限があります。 質問のような場合、b1 + b2 は SUM(b), c1 + c2 は SUM(c) で求められますが、 a1 & a2 を求めるようなことはできません。

danchor
質問者

補足

driverIIさん 早速ありがとうございます。 例の表示がまずかったのですが、このa1~c3までのデータはすべて同じ行にあります。 この6つのフィールド(列)を含むデータを関連するA,B,C3列にまとめてしまいたいと思ったわけです。 データアダプタのSQLでは a1&a2を別名A、b1+b2を別名B、同じくcもCとしています。 その後一つわかったことは、データを変換する際に数値型の列でデータのないセルには本来ゼロが入るところ(null)になっていたので、 それをすべてゼロをいれることにより解決しました。 ただいまだ文字列の演算は???のままです。 引き続きよろしくおねがいいたします。

関連するQ&A