質問編集履歴

3

回答を受けコード修正した後の追加質問

2019/04/12 04:08

投稿

agawa
agawa

スコア14

test CHANGED
File without changes
test CHANGED
@@ -128,8 +128,66 @@
128
128
 
129
129
 
130
130
 
131
+ ### 追加情報
132
+
133
+ hihijijiさんのアドバイスを受け、以下の通り修正したところエラー出ず動きました。
134
+
135
+ ("," を ','に修正し、DataIdがint型なのでstr型にキャストしました。)
136
+
131
- ### 補足情報(FW/ツールのバージョンど)
137
+ ただ、実行結果が想定と異っている状態で、引き続き困っております。
132
138
 
133
139
 
134
140
 
141
+ 現在の実行結果
142
+
143
+ |出身|性別|人数|DataId|
144
+
145
+ |:--|:--:|--:|
146
+
147
+ |東京|男|2|001,002,003,004,005,006,007,008|
148
+
149
+ |東京|女|1|001,002,003,004,005,006,007,008|
150
+
151
+ |大阪|男|1|001,002,003,004,005,006,007,008|
152
+
153
+ |大阪|女|2|001,002,003,004,005,006,007,008|
154
+
155
+ |愛知|女|2|001,002,003,004,005,006,007,008|
156
+
157
+
158
+
159
+ 全てのDataIdを連結してしまっている状態です。
160
+
161
+ 自分自身とテーブルでサブクエリを組んでるので当たり前の結果のような気もしていますが
162
+
163
+ どのようにすればほしい結果が得られるのか考えつかない状態です。
164
+
165
+ クエリの組み方や他の方法などあればアドバイスいただけませんでしょうか。
166
+
167
+ よろしくお願いします。
168
+
169
+
170
+
171
+ ### 該当のソースコード(hihijijiさんのアドバイス後)
172
+
173
+ SELECT
174
+
175
+ tA.出身
176
+
177
+ ,tA.性別
178
+
135
- ここにより詳細な情報を記載してく。」
179
+ ,COUNT(tA.氏名) AS 人数
180
+
181
+ ,(SELECT STR(tB.DataId) + ','
182
+
183
+ FROM テーブル1 AS tB
184
+
185
+ WHERE tB.DataId = tA.DataId
186
+
187
+ FOR XML PATH('')
188
+
189
+ ) AS DataId
190
+
191
+ FROM テーブル1 AS tA
192
+
193
+ GROUP BY tA.出身,tA.性別

2

リンク先の内容を修正しました。

2019/04/12 04:08

投稿

agawa
agawa

スコア14

test CHANGED
File without changes
test CHANGED
@@ -118,15 +118,13 @@
118
118
 
119
119
  上記のエラーで詰まってしまっています。
120
120
 
121
- ↓過去ログ
122
-
123
- [リンク内容](https://teratail.com/questions/156977)
121
+ [過去ログ](https://teratail.com/questions/156977)
124
122
 
125
123
  ↓過去ログにあったリンク先
126
124
 
127
- [リンク内容](http://uyan39.hatenablog.com/entry/20120721/1342893081)
125
+ [参照サイト1](http://uyan39.hatenablog.com/entry/20120721/1342893081)
128
126
 
129
- [リンク内容](https://webbibouroku.com/Blog/Article/forxmlpath)
127
+ [参照サイト2](https://webbibouroku.com/Blog/Article/forxmlpath)
130
128
 
131
129
 
132
130
 

1

・URLをリンクに修正しました。・曖昧な表現があったので修正しました。

2019/04/12 03:19

投稿

agawa
agawa

スコア14

test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,8 @@
7
7
  さらに最終的に別処理で利用するため集約したデータのDataIdを取得したいです。
8
8
 
9
9
  My SQLやORACLEではGROUP_CONCATで実現可能な機能ですがSQLSERVERのため使用できず詰まっています。
10
+
11
+ 環境としてはVB.NETからSQL Serverに接続しています。
10
12
 
11
13
 
12
14
 
@@ -52,11 +54,13 @@
52
54
 
53
55
 
54
56
 
55
- 過去ログなどを参照してコードを組みましたがうまくいきません。
57
+ 過去ログを参照してコードを組みましたがうまくいきません。
56
58
 
57
59
  コード自体に間違いがあれば教えていただきたいです。
58
60
 
59
61
  また他の方法で実現可能であれば方法を教えていただけませんでしょうか。
62
+
63
+ よろしくお願いします。
60
64
 
61
65
 
62
66
 
@@ -112,11 +116,17 @@
112
116
 
113
117
  過去ログや他サイトなど参照し以下でできそうだったので実装しましたが
114
118
 
115
- せんでした
119
+ 上記のエラーで詰ってしまっていま
116
120
 
117
- http://uyan39.hatenablog.com/entry/20120721/1342893081
121
+ ↓過去ログ
118
122
 
123
+ [リンク内容](https://teratail.com/questions/156977)
124
+
125
+ ↓過去ログにあったリンク先
126
+
127
+ [リンク内容](http://uyan39.hatenablog.com/entry/20120721/1342893081)
128
+
119
- https://webbibouroku.com/Blog/Article/forxmlpath
129
+ [リンク内容](https://webbibouroku.com/Blog/Article/forxmlpath)
120
130
 
121
131
 
122
132