【发布时间】:2020-12-08 14:55:00
【问题描述】:
我有一张桌子,比如 Table1:
而且,我正在尝试使用以下条件提取数据:
- 选择 A 列中的所有条目,即 2 和 5,
- B 列中为 100 的所有条目
- C 列中合同 ID 为 15 的所有数据
- 例如 D 列中小于 31.02.2016 的所有日期
- 最后,列 G 中具有最大值的行
如果我使用以下代码(除了在 G 列中查找最大日期),它可以正常工作:
Select * from Table1
where
A in (2 , 5)
and B = 100
and C = '15'
and D <= TO_DATE ('31.01.16', 'DD.MM.YY HH24:MI:SS')
现在,我想在 G 列中找到所有那些具有最大日期值的行。如果我在这种情况下使用以下内容来查找与 G 中的最大日期相对应的行,则查询运行并且我得到一个空仅包含列名的表:
Select * from Table1 t1
where
A in (2 , 5)
and B = 100
and C = '15'
and D <= TO_DATE ('31.01.16', 'DD.MM.YY HH24:MI:SS')
and G = (select MAX(G) from Table1 where G = t1.G)
想要的输出是:
我做错了什么?
【问题讨论】:
-
你能粘贴你的样本数据而不是图片吗
-
雷,请检查答案
-
@Atif:我试过了,我知道我无法在此处加载/粘贴文件。我发现这个链接支持它:meta.stackoverflow.com/questions/314547/…
标签: sql oracle datetime sql-order-by greatest-n-per-group