Sql 在Oracle中合并两行

Sql 在Oracle中合并两行,sql,oracle,merge,toad,Sql,Oracle,Merge,Toad,我之所以合并两行,是因为我所指的表同时存储了借方和贷方的交易。因此,每当事务发生时,表中总会插入两条新记录,一条用于借记,另一条用于贷记。我需要做的是合并这两个关联交易,例如: 变成这样的东西: 忘了一件事。借方和贷方金额的确定方式由以下代码决定: CASE WHEN DTD.PART_TRAN_TYPE = 'D' THEN (DTD.TRAN_AMT) ELSE null END DR_Amount, CASE WHEN DTD.PART_

我之所以合并两行,是因为我所指的表同时存储了借方和贷方的交易。因此,每当事务发生时,表中总会插入两条新记录,一条用于借记,另一条用于贷记。我需要做的是合并这两个关联交易,例如:

变成这样的东西:

忘了一件事。借方和贷方金额的确定方式由以下代码决定:

CASE WHEN DTD.PART_TRAN_TYPE = 'D'
        THEN (DTD.TRAN_AMT)
        ELSE null
    END DR_Amount,
    CASE WHEN DTD.PART_TRAN_TYPE = 'C'
        THEN (DTD.TRAN_AMT)
        ELSE null
    END CR_Amount,

金额仅来自一个表。

这里需要的是一个SQL连接查询

假设表名为“trans”,类似于:

SELECT table1.TRANSACTION_ID, table1.ACCT_CURRENCY, 
    table1.DR_AMOUNT, table2.CR_AMOUNT
FROM trans table1
INNER JOIN trans table2 on table1.TRANSACTION_ID = table2.TRANSACTION_ID
这使用内部联接将表“trans”与其自身联接起来。为此,我们为表提供了一个别名(“FROM trans table1”让我们用“table1”引用trans实例)。
“on”语句告诉Oracle获取表1中的每条记录,并将其连接到表2中具有相同“TRANSACTION_ID”字段值的记录

在您的情况下,您将有一个记录,其中包含贷方价值或借方价值

将表名视为带有示例记录的TRANS_信息

查询:

SELECT * FROM TRANS_INFO CR_TABLE 
INNER JOIN TRANS_INFO DR_TABLE ON CR_TABLE.TRANS_ID = DR_TABLE.TRANS_ID
AND (CR_TABLE.CR_AMOUNT <> '') AND (DR_TABLE.DR_AMOUNT <> '')
从TRANS\u INFO CR\u表中选择*
CR_TABLE.TRANS_ID=DR_TABLE.TRANS_ID上的内部联接TRANS_INFO DR_TABLE
和(CR_TABLE.CR_AMOUNT“”)和(DR_TABLE.DR_AMOUNT“”)
输出:作为基于
TRANS\u ID的合并行


这不是我想要的答案。我在原来的帖子中添加了一些内容,请再次查看