- ベストアンサー
Access:クエリーにて集計後に文字列結合したい。
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とセットにして別のテーブルに保存、 といった回りくどいことをするぐらいしか、今のところ思いつきません。
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
データをもう少し具体的に示したほうがよろしいでしょう。 tblAに列A、列B、列Cがあるとして、 select 列A & 列B & 列C from tblA; でしょうね。 カンマ区切りにしたければ select 列A & ',' & 列B & ',' & 列C from tblA; でしょう。
お礼
ご回答ありがとうございました。 同一行でのテキスト連結はこれで可能でしたが、 今回知りたかったのは、同一列のグループ化された レコードの連結方法でした。 説明不足で申し訳ありませんでした。
お礼
ご回答ありがとうございました。 やはり、同一列グループ化後の文字列結合は用意されていないのですね、、(T-T) 別の代替方法を探してみます。 ありがとうございました。