質問編集履歴
3
回答を受けコード修正した後の追加質問
title
CHANGED
File without changes
|
body
CHANGED
@@ -63,6 +63,35 @@
|
|
63
63
|
[参照サイト1](http://uyan39.hatenablog.com/entry/20120721/1342893081)
|
64
64
|
[参照サイト2](https://webbibouroku.com/Blog/Article/forxmlpath)
|
65
65
|
|
66
|
+
### 追加情報
|
67
|
+
hihijijiさんのアドバイスを受け、以下の通り修正したところエラー出ず動きました。
|
68
|
+
("," を ','に修正し、DataIdがint型なのでstr型にキャストしました。)
|
66
|
-
|
69
|
+
ただ、実行結果が想定と異なっている状態で、引き続き困っております。
|
67
70
|
|
71
|
+
現在の実行結果
|
72
|
+
|出身|性別|人数|DataId|
|
73
|
+
|:--|:--:|--:|
|
74
|
+
|東京|男|2|001,002,003,004,005,006,007,008|
|
75
|
+
|東京|女|1|001,002,003,004,005,006,007,008|
|
76
|
+
|大阪|男|1|001,002,003,004,005,006,007,008|
|
77
|
+
|大阪|女|2|001,002,003,004,005,006,007,008|
|
78
|
+
|愛知|女|2|001,002,003,004,005,006,007,008|
|
79
|
+
|
80
|
+
全てのDataIdを連結してしまっている状態です。
|
81
|
+
自分自身とテーブルでサブクエリを組んでるので当たり前の結果のような気もしていますが
|
82
|
+
どのようにすればほしい結果が得られるのか考えつかない状態です。
|
83
|
+
クエリの組み方や他の方法などあればアドバイスいただけませんでしょうか。
|
84
|
+
よろしくお願いします。
|
85
|
+
|
86
|
+
### 該当のソースコード(hihijijiさんのアドバイス後)
|
87
|
+
SELECT
|
88
|
+
tA.出身
|
89
|
+
,tA.性別
|
68
|
-
|
90
|
+
,COUNT(tA.氏名) AS 人数
|
91
|
+
,(SELECT STR(tB.DataId) + ','
|
92
|
+
FROM テーブル1 AS tB
|
93
|
+
WHERE tB.DataId = tA.DataId
|
94
|
+
FOR XML PATH('')
|
95
|
+
) AS DataId
|
96
|
+
FROM テーブル1 AS tA
|
97
|
+
GROUP BY tA.出身,tA.性別
|
2
リンク先の内容を修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -58,11 +58,10 @@
|
|
58
58
|
|
59
59
|
過去ログや他サイトなど参照し以下でできそうだったので実装しましたが
|
60
60
|
上記のエラーで詰まってしまっています。
|
61
|
-
↓過去ログ
|
62
|
-
[
|
61
|
+
[過去ログ](https://teratail.com/questions/156977)
|
63
62
|
↓過去ログにあったリンク先
|
64
|
-
[
|
63
|
+
[参照サイト1](http://uyan39.hatenablog.com/entry/20120721/1342893081)
|
65
|
-
[
|
64
|
+
[参照サイト2](https://webbibouroku.com/Blog/Article/forxmlpath)
|
66
65
|
|
67
66
|
### 補足情報(FW/ツールのバージョンなど)
|
68
67
|
|
1
・URLをリンクに修正しました。・曖昧な表現があったので修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
以下のようなテーブルがあり、出身と性別で集約してそこに含まれるデータ数(人数)を取得し、
|
4
4
|
さらに最終的に別処理で利用するため集約したデータのDataIdを取得したいです。
|
5
5
|
My SQLやORACLEではGROUP_CONCATで実現可能な機能ですがSQLSERVERのため使用できず詰まっています。
|
6
|
+
環境としてはVB.NETからSQL Serverに接続しています。
|
6
7
|
|
7
8
|
|DataId|出身|性別|氏名|
|
8
9
|
|:--|:--:|--:|
|
@@ -25,9 +26,10 @@
|
|
25
26
|
|大阪|女|2|005,006|
|
26
27
|
|愛知|女|2|007,008|
|
27
28
|
|
28
|
-
過去ログ
|
29
|
+
過去ログを参照してコードを組みましたがうまくいきません。
|
29
30
|
コード自体に間違いがあれば教えていただきたいです。
|
30
31
|
また他の方法で実現可能であれば方法を教えていただけませんでしょうか。
|
32
|
+
よろしくお願いします。
|
31
33
|
|
32
34
|
### 発生している問題・エラーメッセージ
|
33
35
|
|
@@ -55,9 +57,12 @@
|
|
55
57
|
### 試したこと
|
56
58
|
|
57
59
|
過去ログや他サイトなど参照し以下でできそうだったので実装しましたが
|
58
|
-
|
60
|
+
上記のエラーで詰まってしまっています。
|
61
|
+
↓過去ログ
|
62
|
+
[リンク内容](https://teratail.com/questions/156977)
|
63
|
+
↓過去ログにあったリンク先
|
59
|
-
http://uyan39.hatenablog.com/entry/20120721/1342893081
|
64
|
+
[リンク内容](http://uyan39.hatenablog.com/entry/20120721/1342893081)
|
60
|
-
https://webbibouroku.com/Blog/Article/forxmlpath
|
65
|
+
[リンク内容](https://webbibouroku.com/Blog/Article/forxmlpath)
|
61
66
|
|
62
67
|
### 補足情報(FW/ツールのバージョンなど)
|
63
68
|
|