質問

Accessのクエリーでレコードのグループ化を行っている状態で、あるフィールドに対してだけ文字列の結合を行いたいのですが、集計部分をどのように指定すればよいかわからず困っています。

イメージとしては、SQLビューにて、グループ化されたレコードの合計が、
 SUM([テーブル名].[フィールド名])
で求められる様に、
エクセルの文字列結合関数
 CONCATENATE([テーブル名].[フィールド名])
が使いたい、という感じです、、

Accessにおける文字列結合は"&"を使うとありましたが、この場合どのように記述するべきでしょうか?

通報する

回答 (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とセットにして別のテーブルに保存、
といった回りくどいことをするぐらいしか、今のところ思いつきません。

この回答へのお礼

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

別の代替方法を探してみます。

ありがとうございました。

データをもう少し具体的に示したほうがよろしいでしょう。

tblAに列A、列B、列Cがあるとして、
select 列A & 列B & 列C from tblA;
でしょうね。

カンマ区切りにしたければ
select 列A & ',' & 列B & ',' & 列C from tblA;
でしょう。

この回答へのお礼

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

このQ&Aは役に立ちましたか?8 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

注目の記事

フリーアナウンサー長谷川豊氏の新コーナー「このニュースどう思います?」がスタート!

元フジテレビのフリーアナウンサー長谷川豊氏から気になるニュースについておしトピの皆さんに質問します! 皆さんの意見をもとに長谷川豊氏がコラムを執筆します! アプリリリース記念として最大1万分のアマゾンギフト券プレゼントキャンペーンも実施中!

このQ&Aを見た人が検索しているワード


新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ