したがって、使用しているデータベースのバージョンがわからなくても、システムで機能する可能性のある基本とサンプルクエリを紹介します。
基本的には「ピボットクエリ」の作成を検討していますが、クエリに対してこれを行うには、分析関数を使用して、テーブルAから返される各行の行番号を指定する必要があります。
select studentID,
parentID
row_number() over (partition by studentID order by studentID) as parentNum
FROM NormalizedFamily
order by studentID
次に、その結果を使用して、ピボットクエリをまとめます。
select studentID,
MAX(case when parentNum = 1 then parentID else null),
MAX(case when parentNum = 2 then parentID else null)
MAX(case when parentNum = 3 then parentID else null)
MAX(case when parentNum = 4 then parentID else null)
from (select studentID,
parentID
row_number() over (partition by studentID order by studentID) as parentNum
FROM NormalizedFamily
order by studentID)
データベースを操作するには構文をクリーンアップする必要があるかもしれませんが、それが一般的な要点です。