【发布时间】:2014-12-01 13:33:45
【问题描述】:
Version B C D output Account number Balance
----------------------------------------------------------------
2 1283 1303 0 4071 1 10
2 1283 1304 0 4072 2 20
3 1283 4068 1303 4071 1 30
3 1283 4069 1304 4072 4 40
4 1283 4071 4068 4071 5 -50
4 1283 4072 4069 4072 2 90
Version,B,C,D 是 all_details 表中存在的列。列“输出”是我希望实现的输出,我希望将上述所有列存储在一个表中,直到输出
我如何在输出的第一行放置 4071 是
1) i took 1303 in column C and then looked into column D
2) then it is again referring to 4068 in column C
3) Then i took 4068 and it is refering to 4071 in column C its like a linkage
我使用 B 列,因为它是与其他列相关的信息。
我需要另一个列输出,以便我可以识别相关链接并总结余额。例如
我会总结相关链接 1303,4068,4071 balances Group by Output 我会得到 10+40 = 50 账户 1 和 -50 账户 5 对应 4071
【问题讨论】:
-
您的查询是什么?什么是表结构?请补充一些信息,现在还不清楚。
-
我无法格式化,请编辑查看结构
-
解释你的数据的含义。我们看到的是一堆乱七八糟的无用数字。
-
这是一个困难的,因为你需要循环找到最高的。我不确定这是否可以通过 SQL 语句来完成。
-
我认为您必须将数字视为版本号。列 C 和 D 关联为连续版本,C 为当前版本,D 为先前版本。所以如果你看到版本 1303 有前任 0,那么之前没有版本。但是 4068 版本是 1303 的后继版本。而 4071 是 4068 的后继版本。4071 没有更高版本,因此 4071 的结果应该是 4071 以及它的所有前辈。
标签: sql oracle stored-procedures