【发布时间】:2023-03-25 02:55:01
【问题描述】:
我正在处理 Oracle 中的两个表,TABLE_A 包含唯一 ID 和余额(数字)。 TABLE_B 显示相同 ID 的特定交易并包含以下字段:ID(非唯一)、BAL、Sequence_number。 我想检查 TABLE_A.Balance 是否始终等于具有 Max(Sequence_number) 的 TABLE_B.Balance。 所以我希望每个 ID 只有一行。
我尝试了以下方法,但它不会为每个 ID 返回唯一的行,而是返回多个。这是为什么呢?
Select a.ID, a.Balance,b.Balance, b.sequence_number From TABLE_A a Inner join (select ID, Balance, max(sequence_number) as sequence_number from TABLE_B group by ID, Balance) b On a.ID = B.ID Group by a.ID, a.Balance, b.Balance, b.sequence_number
TABLE_A
ID_______Balance
1_______10
2_______15
3_______50
TABLE_B
ID____Balance____Sequence_number
1_______19_______1
1_______75_______2
1_______10_______3
2_______39_______1
2_______15_______2
3_______120_______1
3_______89_______2
3_______57_______3
3_______50_______4
【问题讨论】:
标签: sql oracle max inner-join