2012-04-17 19 views
0

類似のトピックを調べていくつかの自己結合を試みましたが、適用方法を理解できませんでした。Pervasive SQL 11でテーブルをピボットする

パーベイシブSQL 11におけるこのようなテーブルあり:、

kit|part 

1 | 21 

1 | 22 

1 | 23 

1 | 24 

2 | 30 

2 | 31 
.... 

は、関連部品の数が1から30以上に変化するであろう

1 | 21 | 22 | 23 | 24 

2 | 30 | 31 

一列にこれを返却したいべきキットごとに1行しか返さない

これを達成する最良の方法は何ですか?

答えて

0

自己参加のための必要なし、GROUP_CONCAT(MySQLを仮定)とのちょうどGROUP BY:

SELECT kit, GROUP_CONCAT(part) 
FROM table 
GROUP BY kit 

あなたが発注を選択、またはセパレータを追加することができます。

SELECT kit, GROUP_CONCAT(DISTINCT part ORDER BY part ASC SEPARATOR ' ') 
FROM table 
GROUP BY kit 

しかし、場合結果を別々の列にしたい場合は、動的な自己結合をMySQLに書き込むことはできません。自動的に結合して、すべてのテーブルを保持するのに十分な時間を確保し、MySQLはピボットをサポートしません。しかし、他の(R)DBMSでもかまいません。

+0

別々の列にはいないのは大丈夫です。私はあなたの提案が好きです。しかし、私はテーブル名を使ってこれを試してみましたが、表現の誤りを受けました – user1338140

+0

ああPervasive?あなたはそれを追加しましたか、それともぼんやりと読んだのですか?私はMySQLを想定していました。適切な人からより多くの注目を集めるためにあなたの質問のタイトルを編集:] – Konerak

+0

申し訳ありませんが、私のタイトルを編集していただきありがとうございます。 – user1338140

関連する問題