0
2つのテーブルを使用して最初のビューを取得した後、GROUP_CONCAT
を1つの列に作成したいが、この機能はSQL Serverにはない。複数の行をSQL Serverの動的テーブルに連結
ここでいくつかの例を試しましたが、私のSQLではうまくいかなかったのです。例では、常にテーブルを使用してGROUP_CONCAT
を生成していますが、SQLの結果は表示されませんでした。
TableAの:
| CityID | MasterID | Account |
+-----------------------------+
| 01 | 1234 | 1111 |
| 01 | 1234 | 2222 |
| 01 | 1234 | 3333 |
| 02 | 1234 | 4444 |
TableBの:
| Account | Item | Price |
+------------------------+
| 1111 | A001 | 11,11 |
| 2222 | A001 | 11,11 |
| 3333 | A002 | 22,22 |
| 4444 | A002 | 22,22 |
| 5555 | A002 | 22,22 |
まずSQL - 副選択:
SELECT *
FROM TableA, TableB
WHERE TableA.AccountID = TableB.AccountID
出力:
| CityID | MasterID | Account | Account | Item | Price |
+------------------------------------------------------+
| 01 | 1234 | 1111 | 1111 | A0001 | 11,11 |
| 01 | 1234 | 2222 | 2222 | A0001 | 11,11 |
| 01 | 1234 | 3333 | 3333 | A0002 | 22,22 |
| 02 | 1234 | 4444 | 4444 | A0002 | 22,22 |
セカンドSQL - 最終ビュー:
SELECT
MasterID, GROUP_CONCAT(Item)
FROM
(SELECT *
FROM TableA, TableB
WHERE TableA.AccountID = TableB.AccountID) table01
出力:それはあなたが言及したものだとして
| MasterID | Item |
+-----------------+
| 1234 | A0001,A002 |
[古いスタイルのJOINを使用する](http://sqlblog.com/blogs/a古いスタイルの*カンマで区切られたテーブルのスタイルのリストが*適切な* ANSIに置き換えられていることを示しています(aron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx) ANSI - ** 92 ** SQL標準(** 20年以上前**)の 'JOIN'構文とその使用はお勧めしません –