我合并两行的原因是因为表I指的是在借方和贷方中存储交易。因此,每当交易发生时,表中总会有两个新记录,一个用于借方,一个用于贷方。我需要做的是合并这两个相关的交易,例如:
看起来像这样:
忘了一件事。如何确定借方和贷方金额是由以下代码:
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,
金额来自一张桌子。
答案 0 :(得分: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'的记录。场价值。
答案 1 :(得分:-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 <> '')
OutPut:作为基于TRANS_ID
的合并行