【发布时间】:2017-12-21 18:45:27
【问题描述】:
我知道我的问题标题不对,很抱歉。我真正想做的是: 我有 2 个表,即 Account Table 和 History 表,如下所示- 账户表
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
我想要一个组合结果为-
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
我怎样才能做到这一点?
【问题讨论】:
-
到目前为止必须尝试编写什么查询?
-
你在找
listagg() -
在 Account Table.BranchID=History Table.BranchID 的两个表上使用内部联接,并且选择列包含 BranchID |帐号 | PMO名称 | RO名称 | RefName 顺便说一下是 sql 概念。
-
SELECT t1.BranchID, t1.AccountNo max(decode(ji.ro_type_id, '001', ji.employee_code, 'NA')) as pmo, max(decode(ji.ro_type_id, '001 ', ji.employee_nm, 'NA')) as pmo, max(decode(ji.ro_type_id, '002', ji.employee_code, 'NA')) as rm FROM Account t1 LEFT JOIN (SELECT t.BranchID, t. AccountNo, t.EmployeeName FROM History t GROUP BY t.BranchID, t.AccountNo, t.EmployeeName)t2 ON t2.BranchID=t1.BranchID AND t2.AccountNo=t1.AccountNo
标签: sql oracle string-aggregation