私は多くの類似のトピックを検索しましたが、これを機能させるのにまだ苦労しています。いくつかのテーブル結合を行った後、特に 1 つの列でグループ化しようとしています。どんな助けでも大歓迎です
今日のアウトプット
Account System System Plan Code Account Plan Code Request
12345 Sys1 Sys1 P1 12345 P1 00001
12345 Sys1 Sys1 P2 NULL NULL NULL
12345 Sys2 Sys2 P3 12345 P3 00002
34567 Sys1 Sys1 P1 NULL NULL NULL
34567 Sys1 Sys1 P2 34567 P2 00003
45678 Sys3 Sys3 P4 NULL NULL NULL
望ましい出力
Account System System Plan Code Account Plan Code Request
12345 Sys1 Sys1 P1 12345 P1, P2 00001
12345 Sys2 Sys2 P3 12345 P3 00002
34567 Sys1 Sys1 P2 34567 P1,P2 00003
45678 Sys3 Sys3 P4 NULL NULL NULL
いくつかのテーブルを結合しています。プラン コードを組み合わせて、それぞれの固有のアカウントからシステムへのマッピングごとに 1 行にまとめたいと考えています。
- Tab1 = アカウントとシステム
- Tab2 = System and Plan Code (各システムに関連する計画コードを示すマッピング)
- Tab3 = アカウント、プラン コード、リクエスト番号
1 列の GROUP BY を試したところ、GROUP BY 式ではないというエラーが表示されました。そのため、すべての列を含めましたが、出力はまったく変わりません。
SELECT A.ACCOUNT, A.SYSTEM, B.SYSTEM, B.PCODE, C.ACCOUNT, C.PCODE, C.REQUEST
FROM MYDB.TAB1 A
LEFT JOIN MYDB.TAB2 B
ON A.SYSTEM = B.SYSTEM
LEFT JOIN MYDB.TAB3 C
ON A.ACCOUNT = C.ACCOUNT AND B.PCODE = C.PCODE
WHERE A.ACCOUNT IS NOT NULL
ORDER BY A.ACCOUNT