【发布时间】:2019-11-07 00:25:14
【问题描述】:
当我想编写一个查询以选择 sql oracle 表中的前一条记录时,我遇到了问题。
我使用 max 来进行查询:
select cur.wage ,max(prev.wage)
from t_wage prev
inner join
T_wage cur
on
cur.cntid=prev.cntid
where cur.wage=2*prev.wage
group by prev.wage
having max (prev.wage)< cur.wage
我希望结果检索最后一条记录并将其与倒数第二条进行比较,如果它加倍。
无论日期如何,我都不知道如何带上以前的记录。谁能告诉我哪里错了?
结果应该是:
3000 6000
【问题讨论】:
-
您通常
GROUP BY与您SELECT相同的列,除了那些是设置函数的参数的列。 IE。我会改用group by cur.wage。 -
你的 cur.wage/prev.wage 条件都搞砸了。也向我们展示预期的结果,我希望能理解你想要做什么。顺便说一句,这里的大多数人都希望样本数据和预期结果为格式化文本,而不是图像。
-
我要检索表中每个cntid的最后一个和倒数第二个工资,
-
上一次工资翻倍的人