• ベストアンサー

Access:クエリーにて集計後に文字列結合したい。

Accessのクエリーでレコードのグループ化を行っている状態で、あるフィールドに対してだけ文字列の結合を行いたいのですが、集計部分をどのように指定すればよいかわからず困っています。 イメージとしては、SQLビューにて、グループ化されたレコードの合計が、  SUM([テーブル名].[フィールド名]) で求められる様に、 エクセルの文字列結合関数  CONCATENATE([テーブル名].[フィールド名]) が使いたい、という感じです、、 Accessにおける文字列結合は"&"を使うとありましたが、この場合どのように記述するべきでしょうか?

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

Excelでの「同一行の各列のテキストデータを連結」と同様の操作であれば、No.1の方が答えられている方法でできます。 例) ID GrNo テキスト1 テキスト2 テキスト3 1  1 テスト1   テスト2  テスト3 2  1 テスト4   テスト5  テスト6 →GrNoでグループ化して集計を掛ける際、  「[テキスト1] & [テキスト2] & [テキスト3]」の式をフィールドとして指定すれば   ID=1では「テスト1テスト2テスト3」が返される。 ただ、もし「同一列の各行のテキストデータを連結」を想定されているのだとすると、これはAccessに備え付けの関数では対処できません。 ・・・もしかしたら私が知らないだけかもしれませんが(汗) 例) ID GrNo テキスト 1  1   テスト1 2  1   テスト2 3  1   テスト3 4  2   テスト4 5  2   テスト5 →GrNoでグループ化して集計をかけた場合に、   GrNo=1で「テスト1テスト2テスト3」を返す式は用意されていない。   (あるのは「First(先頭)」などの1レコードのデータを参照する式か、    「SUM」などの数値の演算結果を表示させる式のみ) なので、どうしても下側の例のようなデータを作成したいということでしたら、 一旦フォームなどで同GrNoのレコードを表示させた上で、そのフォームを 順次レコード移動しながら「テキスト」フィールドを連結させ、 それをGrNoとセットにして別のテーブルに保存、 といった回りくどいことをするぐらいしか、今のところ思いつきません。

metalnon
質問者

お礼

ご回答ありがとうございました。 やはり、同一列グループ化後の文字列結合は用意されていないのですね、、(T-T) 別の代替方法を探してみます。 ありがとうございました。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

データをもう少し具体的に示したほうがよろしいでしょう。 tblAに列A、列B、列Cがあるとして、 select 列A & 列B & 列C from tblA; でしょうね。 カンマ区切りにしたければ select 列A & ',' & 列B & ',' & 列C from tblA; でしょう。

metalnon
質問者

お礼

ご回答ありがとうございました。 同一行でのテキスト連結はこれで可能でしたが、 今回知りたかったのは、同一列のグループ化された レコードの連結方法でした。 説明不足で申し訳ありませんでした。

関連するQ&A