• ベストアンサー
※ 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

  • 【word2010】 文字列連結演算子?について

    WORD2010で差込印刷をしています。 データ元で、項目A(文字列)ブランクの場合ブランク、項目Aがブランクでなければ項目B(文字列)と項目C(文字列)を表示させたいのですが、偽の戻り値の表記のしかたが分かりません。下記のように書くと項目B(文字列)しか戻ってきません。項目C(文字列)はどのように連結すればいいのでしょうか。演算子、「&」や「+」で連結すればいいのでしょうか? {if {MERGEFIELD 項目A} = """" {MERGEFIELD 項目B}{MERGEFIELD 項目C} } ご教授のほどよろしくお願いいたします。

  • エクセル 文字列連結演算子で文字列を結合

    文字列連結演算子の「&」 を使って文字列を結合し、その間に()を投入したいです。 A列   B列  C列        D列 高橋太郎 東京  文字連結演算子  高橋太郎(東京) C列 =A1&(B1) ではエラーがでます。正しい書式を教えてください。 A列    B列  C列   D列  E列        F列 高橋太郎 (    東京   )  文字連結演算子   高橋太郎(東京) E列 =A1&B1&C1&D1 ってのは分かるのですが、もっとスッキリするものはないでしょうか? 宜しくお願いします。

  • Excelの式の誤りを教えてください。

    Excel2003を使用しています。 A4からL204までデータがあります。(ところどころに空白の行があります) C 列は文字列で、"B"の文字が表示されている行であれば、同じ行の I列とJ列の数値を足し算して、その計にL列の数値を掛け算して、その4行目から204行目までの"B"行の I列とJ列を足し算して、その計にL列の数値を掛け算した合計を、"B"の文字が表示されている行のI列とJ列を足し算した合計の数値で割り算した数値をL1のセルに表示する数 式を教えてください。 下の式は自分で考えたのですが、だめです。 L1=SUMPRODUCT((C4:C204="B")*1,(I4:I204+J4:J204)*L4:L204)/SUMIF(C4:C204,"B",I4:I204)+SUMIF(C4:C204,"B",J4:J204) 宜しくお願いいたします。

  • エクセル マクロ 足し算

    いつもお世話になります。マクロ勉強中の初心者です。 マクロの足し算を教えてください。 A列  B列  C列 ・・・・  1   2    3  4   5    6  7   8    9 という数字のデータがあります。 これらのA列の合計、B列の合計・・・など列の合計を出すマクロはわかるのですが、  作成したVBA    Range("a4") = Application.WorksheetFunction.Sum(Range("a1:a3")) A列の合計(A1~A3)とB列の合計(B1~B3)とC列(C1~C3)の合計を、D4に合計させる方法を 教えてください。 どうぞよろしくお願いします。

  • 初歩的な関数なのですが、教えてください。

     A列 B列 C列 D列 E列 1               鶴    2 あ  鶴  あ 3 い  亀   4 う   5    鶴 6 う 7 え  鶴  え 8    亀 9 E1のセルに「鶴」(任意の文字)をいれます。 A列に文字が入っていて、かつ、B列の文字=E1の文字(鶴)ならA列の文字をC列に返す。 A列に文字が入っているが、B列の文字がE1の文字と異なる(亀)ならC列は空白。 A列に文字が入っているが、B列の文字が空白ならC列は空白。 A列が空白なら、B列に鶴、亀、その他の文字が入っていても空白。 A列、B列ともに空白なら、C列も空白 上記を可能にする関数がわかりません。 IF関数を使うのだと思うのですが。 エクセルの2003です。よろしくおねがいします。

  • エクセルVBA 文字列複数行・列連続連結

    エクセルVBA 文字列複数行・列連続連結でお教え下さい A列に基本文字(縦順) B列~F列に複数行データー(文字・時間) 文字結合時に改行 例 A2&B2&改行&A3&C2&改行&A4&D2&改行・・・・・ 次のデーター行 A&B3&改行&A3&C3&改行&A4&D3&改行・・・・・ データーの最終行まで連続で このような複数行あるデーターの連続文字列連結をしたいのですが・・・ 文字列連結後は 1.指定セルに貼り付け 2.クリップボードに貼り付け 3.テキストファイルに保存 よろしくお願い致します

  • エクセルの数式がエラーになる

    いつもお世話になります。 エクセルの簡単な縦の足し算の合計の数式(A列2)と同じ数式をB列.C列・・に入力しました。どういう風にやっても、B列は、#VALEと表示されます。 どうしたら、直りますか?

  • 再度、Excelの数式について、今朝

    再度、Excelの数式について、今朝 今朝、KURUMITO様から、下記1)~3)の条件での数式を親切に教えて頂きました。 教えて頂いた数式 =SUMPRODUCT(A4:A55,B4:B55)/H2 その後、条件が1)2)は同じですが、4)が増えたため3)が5)に変更になりました。 自分なりに次のように作ったのですが、エラーになります。=SUMPRODUCT(C4:C55="S")*(A4:A55,B4:B55)/H2 正しい数式を教えてください。バージョンは Excel2003 です、 宜しくお願いいたします。 1)A列 A4からA55まで、数字のデータが入ってるセルと、入ってないセルがあります。 2)B列もA列同様、B4からB55まで、数字のデータが入ってるセルと、入ってないセルがあります。(データの入ってる行は、A列で入っていれば、B列の同じ行に入っています)、 3)A列とB列のデータの入っている行を順番に4から55行まで、掛け算をして(例えば、A5*B5)、その4から55行まで合計を、H2に入っている、ほかの合計の数値で、割り算をする計算式をK2のセルに、一つにまとめて入れ、計算結果を表示したいのです。 4)C列もA列B列同様、C4からC55まで、B又はSの”文字のデータ”が入ってるセルと、入ってないセルがあります。(データの入ってる行は、C列(文字データ)で入っていれば、A列(数字データ)、B列(数字データ)の同じ行に入っています) 5)C列の”文字データ”がSならばA列とB列のデータの入っている行を順番に4から55行まで、掛け算をして(例えば、A5*B5)、その4から55行まで合計を、H2に入っている、ほかの合計の数値で、割り算をする計算式をK2のセルに、一つにまとめて入れ、計算結果を表示したいのです。

  • NULLを含む列の足し算

    NULLを含むA列、B列の合計を取得する方法を教えてください。 列の値がNULLだった場合は0として扱い、 列A 列B 合計 NULL 100 100 100 20 120 50 NULL 50 としたいのですが、 単純に SELECT A+B FROM XXX とすると 列A 列B 合計 NULL 100 NULL 100 20 120 50 NULL NULL となります。 NULL=0として扱う方法はないものでしょうか? 宜しくお願いします。

    • ベストアンサー
    • MySQL
  • エクセルでの数式の表示方法は

       A  B   C   合 計 1  5*4  4*5  3*2   SUM(A1:C1)  A1-20 B1-20 C1-6と表示されますが、      5*4  4*5  3*2と文字列でなく数式のまま表示し 印刷したいのですが。文字列で表示すれば合計がゼロになります。宜しく