有人可以帮我解决SQL查询吗?我正在寻找最近的日期(基准面)。它具有相同的OBJID但不是相同的RADOMGID。
BESADR ARSMEDEL METOD DATUM FNR BYGGID OBJID RADOMGID
bladv 410 spar 20040930 40014686 1 14778 13640
bladv 340 m 19860505 40014686 1 14778 1026
感谢。
答案 0 :(得分:0)
使用GROUP BY
执行MAX
查找每个OBJID的最大数据:
select OBJID, max(DATUM)
from tablename
group by OBJID
如果您想要整行(使用max datum),请使用NOT EXISTS
排除旧行:
select *
from tablename t1
where not exists (select 1 from tablename t2
where t2.OBJID = t1.OBJID
and t2.datum > t1.datum)
如果有平局,将返回两行。
答案 1 :(得分:0)
每个RADOMGID
select t1.* from yourtable t1
join (
select radomgid, max(Datum)
from yourtable t2
group by radomgid
) on t1.radomgid = t2.radomgid
答案 2 :(得分:0)
如果您只想要最新的,假设该表名为my_object_list
select BESADR, ARSMEDEL, METOD, max(DATUM) DATUM,
FNR, BYGGID, OBJID, RADOMGID
from my_object_list mol
Where Objid = '14778'
group by BESADR, ARSMEDEL, METOD,
FNR, BYGGID, OBJID, RADOMGID
having max(datum) = mol.datum;