我合并两行的原因是因为我要引用的表将事务存储在借方和贷方中。 因此,每当有交易发生时,表中总会插入两个新记录,一个记入借方,一个记入贷方。 我需要做的是合并这两个相关的事务,例如:

合并两个相关行

变成这样的东西:

合并行的样本

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

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,

金额仅来自一张桌子。

===============>>#1 票数:2

您想要的是一个SQL JOIN查询。

假设表名是“ 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

这使用INNER JOIN将表“ trans”与其自身联接 为此,我们为该表赋予别名 (“ FROM trans table1”使我们可以使用“ table1”来引用trans的实例)。 “ on”语句告诉Oracle从table1中获取每个记录,并将其联接到table2中具有相同“ TRANSACTION_ID”字段值的记录。

===============>>#2 票数:-1

在您的情况下,您将拥有一个贷方或借方值的记录。

将表名称视为带有示例记录的TRANS_INFO

在此处输入图片说明

查询:

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_ID的合并行

在此处输入图片说明

  ask by JamesP translate from so

未解决问题?本站智能推荐: