2017-07-17 14 views
0

私は自分の質問タイトルが正しいとは限りません、ごめんなさい。私が本当にやりたいことはある: 私は2台を持っている、すなわちfollows- アカウント表として表および履歴のテーブルをアカウント複数の行の値をoracleの別の表の1つの行に結合する方法は?

BranchID | AccountNo 
101  | 123456 
102  | 123456 
102  | 123457 

履歴表

BranchID | AccountNo EmployeeName | EmployeeType 
101  | 123456 | Mr. ABC  | PMO 
101  | 123456 | Mr. TRY  | RO 
101  | 123456 | Mr. OPR  | Ref 
102  | 123456 | Mr. WER  | PMO 
102  | 123456 | Mr. CVB  | Ref 
102  | 123457 | Mr. QSR  | PMO 
102  | 123457 | Mr. LIT  | RO 
102  | 123457 | Mr. GHK  | Ref 

私は

AS-組み合わせた結果が欲しいです
BranchID | AccountNo | PMOName | ROName | RefName 
101  | 123456 | Mr. ABC | Mr. TRY | Mr. OPR 
102  | 123456 | Mr. WER |   | Mr. CVB 
102  | 123457 | Mr. QSR | Mr. LIT | Mr. GHK 

これをどのように達成できますか?

+0

? –

+0

'Listagg()'を探しています –

+0

両方のテーブルでAccountTable.BranchID = History Table.BranchIDで内部結合を使用し、選択列にBranchID | AccountNo | PMOName | ROName | RefName ところで、それはSQLのコンセプトです。 – LogicalDesk

答えて

0

以下のクエリは、必要な詳細を取得する必要があります。それがすることです - すべてのアカウントを横断し、従業員の種類ごとに異なる従業員の名前を取得します。ジョインでも行うことができます。

SELECT account.branchid BranchID, 
    account.accountno AccountNo, 
    (SELECT employeename 
    FROM history 
    WHERE account.branch_id = history.branch_id 
    AND account.accountno = history.accountno 
    AND history.employeetype = 'PMO' 
    ) PMOName, 
    (SELECT employeename 
    FROM history 
    WHERE account.branch_id = history.branch_id 
    AND account.accountno = history.accountno 
    AND history.employeetype = 'RO' 
    ) ROName, 
    (SELECT employeename 
    FROM history 
    WHERE account.branch_id = history.branch_id 
    AND account.accountno = history.accountno 
    AND history.employeetype = 'Ref' 
    ) RefName 
FROM account 
; 
+0

各アカウント番号では機能しません。行。 –

+0

@KayserAhmedその後、 'employeetype'フィールドに異なる値があるか、' history'テーブルのデータが少なくなるかもしれません –

0

これは、基本的なピボットクエリです:これまでに書いてみましたしてきたどのようなクエリ

select * 
    from account join history using (branchid, accountno) 
    pivot (max(employeename) for employeetype in ('PMO' pmo, 'RO' ro, 'Ref' ref)) 
    order by branchid, accountno 

BRANCHID ACCOUNTNO PMO  RO   REF 
-------- --------- ---------- ---------- ---------- 
    101 123456 Mr. ABC Mr. TRY Mr. OPR 
    102 123456 Mr. WER    Mr. CVB 
    102 123457 Mr. QSR Mr. LIT Mr. GHK 
関連する問題