У меня есть таблица " childdataviewdetail " с полями " code ", " updateon " и " height ".
- " Код " представляет код ребенка;
- " Updateon " - это дата, когда мы принимаем рост этого ребенка (обычно мыпринимайте его раз в месяц);
- " высота " - рост ребенка.
У нас около 10000 детей. Много раз мы забываем принять их высоту, чтобы они захватывали ноль для того же самого. Мне нужен запрос для обновления нулевого значения последним значением, принятым до этого дня.
Я написал код, который работает нормально, но это занимает слишком много времени. Мне нужно знать, есть ли другой возможный способ сделать это быстро.
select
code,
updateon,
iif(height is null,
(select top 1 height
from childdataviewdetail
where code = t1.code
and updateon<=t1.updateon
and height is not null
order by updateon desc)
,height) height
from childdataviewdetail t1
order by code, updateon
Я получаю ожидаемый результат, но выполнение запроса занимает много времени. Пожалуйста, предложите любую альтернативу.