- - PR -
SQLで横もちにする方法について
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-12-15 18:49
分類 製品
01 01 01 02 01 03 上記のような一つの分類に対し、 複数の製品を持ったデータが存在 する場合に 一発のSQLを使用して データを横もち状態にする方法を ご教授願えますか? (結果イメージ) 分類1 製品1 製品2 製品3 01 01 02 03 |
|
投稿日時: 2004-12-16 07:56
もし分類毎の製品の数に上限があって、なおかつ分類と製品の組み合わせに
関して重複レコードが存在しないのであれば、こんな感じでできると思います。 SELECT [分類], MAX(CASE WHEN [ID] = 1 THEN [製品] ELSE NULL END) AS [製品1], MAX(CASE WHEN [ID] = 2 THEN [製品] ELSE NULL END) AS [製品2], MAX(CASE WHEN [ID] = 3 THEN [製品] ELSE NULL END) AS [製品3] FROM ( SELECT COUNT(*) AS [ID], T1.[分類], T1.[製品] FROM [TABLE] AS T1 INNER JOIN [TABLE] AS T2 ON T1.[分類] = T2.[分類] AND T1.[製品] >= T2.[製品] GROUP BY T1.[分類], T1.[製品] ) AS T3 GROUP BY [分類] |
1
