Я использую запрос SQL, чтобы получить самые последние ненулевые значения, кроме случаев, когда все пустые. Это основано на столбце 'id'.
Рассмотрим эту таблицу:
create table calc
(
id int,
tms date,
col1 int,
col2 int,
col3 int
);
insert into calc
values (1, '1/1/2000', 100, 333, null),
(1, '3/3/2000', null, 222, null),
(1, '2/2/2000', 300, 111, null);
Ожидаемый результат:
1,'3/3/2000',300,222,null
Ниже приведен запрос, который я выполнил, но он возвращает только строку с максимальной датой
select
c.id, max_dt, col1, col2, col3
from
calc c
inner join
(select id, max(tms) as max_Dt
from calc
group by id) a on a.id = c.id and a.max_dt = tms;
Фактический результат:
1,'3/3/2000',null,222,null
Любойидеи о том, как получить желаемое решение?