次のフィールドとサンプル データを含む SQL Server テーブルがあります。
ID Name Address Age
23052-PF Peter Timbuktu 25
23052-D1 Jane Paris 22
23052-D2 David London 24
23050-PF Sam Beijing 22
23051-PF Nancy NYC 26
23051-D1 Carson Cali 22
23056-PF Grace LA 28
23056-D1 Smith Boston 23
23056-D2 Mark Adelaide 26
23056-D3 Hose Mexico 25
23056-D4 Mandy Victoria 24
-PF を含む各 ID は、テーブル内で一意です。
-Dx を持つ各 ID は、-PF を持つ同じ ID に関連付けられます。
-PF を指定した各 ID は、-Dx を指定して 0 個以上の ID を持つことができます。
特定の -PF の -Dx 行の最大数は 9 です。
つまり、ID 11111-PF は、11111-D1、11111-D2、11111-D3 から 11111-D9 までを持つことができます。
上記のサンプル データに期待される出力:
ID ID (without suffix) PF_Name PF_Address PF_Age D_Name D_Address D_Age
23052-PF 23052 Peter Timbuktu 25 Jane Paris 22
23052-PF 23052 Peter Timbuktu 25 David London 24
23050-PF 23050 Sam Beijing 22 NULL NULL NULL
23051-PF 23051 Nancy NYC 26 Carson Cali 22
23056-PF 23056 Grace LA 28 Smith Boston 23
23056-PF 23056 Grace LA 28 Mark Adelaide 26
23056-PF 23056 Grace LA 28 Hose Mexico 25
23056-PF 23056 Grace LA 28 Mandy Victoria 24
上記のように -PF と -Dx に参加できる必要があります。
-PF の Dx 行が 0 の場合、出力の D_Name、D_Address、および D_Age 列は NULL を返す必要があります。
-PF に 1 つ以上の Dx 行がある場合、PF_Name、PF_Address、および PF_Age は出力の各行に対して繰り返され、D_Name、D_Address、および D_Age には関連する各 Dx 行の値が含まれている必要があります。
MSSQL を使用する必要があります。
クエリでビューを使用したり、追加のテーブルを作成したりしないでください。
ご助力いただきありがとうございます!